Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
操作符重载似乎对cout是双向的? 我一直在C++中处理类和运算符重载,最近我遇到了一个代码,其中 cout << class_object cout_C++_Class_Operator Overloading_Cout - Fatal编程技术网

操作符重载似乎对cout是双向的? 我一直在C++中处理类和运算符重载,最近我遇到了一个代码,其中 cout << class_object cout

操作符重载似乎对cout是双向的? 我一直在C++中处理类和运算符重载,最近我遇到了一个代码,其中 cout << class_object cout,c++,class,operator-overloading,cout,C++,Class,Operator Overloading,Cout,成员函数生成class\u对象,因为成员运算符在LHS上获取一个class\u对象。第二个函数导致无限递归。@Nawaz-Oops。我修改了。我的第二个函数有一个错误。现在编辑它。它在我的结果中没有太大变化:“不要使用成员操作符重载,因此,不要从自由操作符重载调用它。” class_object << cout ostream& operator << (ostream& os) { os << num; return os; }

成员函数生成
class\u对象,因为成员运算符在LHS上获取一个
class\u对象。
第二个函数导致无限递归。@Nawaz-Oops。我修改了。我的第二个函数有一个错误。现在编辑它。它在我的结果中没有太大变化:“不要使用成员操作符重载,因此,不要从自由操作符重载调用它。”
class_object << cout
ostream& operator << (ostream& os)
{
   os << num;
   return os;
}
ostream& operator<<(ostream& os, X &class_object)
{
   return class_object << os ;
}
ostream& operator<<(ostream& os, X &class_object)
{
   return class_object << os;
}
ostream& operator<<(ostream& os, X &class_object)
{
   os << class_object.num;
   return os;
}