我一直在修改 C++ 中的类和运算符重载——最近我遇到了一个代码,其中
cout << class_object
和
class_object << cout
如果我重载“<<”运算符(以返回单个类成员),则可以工作。我的类有一个成员 int num,并且成员函数
ostream& operator << (ostream& os)
{
os << num;
return os;
}
以下函数在类外部定义 -
ostream& operator<<(ostream& os, X &class_object)
{
return class_object << os ;
}
(假设 X 是类)
知道它为什么起作用吗?我似乎无法弄清楚。另外,为什么 << 需要两个函数定义(一个在类外,一个在类内)?没有它有什么办法让它工作吗?如果你不介意的话,我很想对它的工作原理和方式进行一些总结。