繁体   English   中英

如何在我的(模板化)类中使用std :: cout?

[英]How to use std::cout with my (templated) class?

我想重载<<操作符,将类实例打印到控制台,如下所示:

std::cout << instance << std::endl;

我在这里找到了解决方案: https : //msdn.microsoft.com/zh-cn/library/1z2f6c2k.aspx

但是我不能使用它,因为我的课程是模板化的:

template<typename T>
myClass {
    //code...
};

编辑:如果尝试在类主体中定义它,则会收到一个错误: it must take only one argument

当然,您可以使用该示例,只需将其改编为您的模板即可。

代替

ostream& operator<<(ostream& os, const Date& dt)

你需要

template<class T>
ostream& operator<<(ostream& os, const myClass<T>& dt)

您可以尝试一下(使其适应您的代码):

std::ostream& operator<<(std::ostream& os, const T& obj)
{
    // write obj to stream
    return os;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM