我想重载<<
运算符,将类实例打印到控制台,如下所示:
std::cout << instance << std::endl;
我在这里找到了一个解决方案:https://msdn.microsoft.com/en-us/library/1z2f6c2k.aspx
但是我无法使用它,因为我的课程是模板化的:
template<typename T>
myClass {
//code...
};
修改
如果我尝试在类体中定义它,我会收到错误:it must take only one argument
答案 0 :(得分:3)
当然,您可以使用该示例,只需根据您的模板进行调整。
而不是
ostream& operator<<(ostream& os, const Date& dt)
你需要
template<class T>
ostream& operator<<(ostream& os, const myClass<T>& dt)
答案 1 :(得分:1)
您可以尝试这一点(使其适应您的代码):
std::ostream& operator<<(std::ostream& os, const T& obj)
{
// write obj to stream
return os;
}