操作符重载似乎对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;
}