有没有一种方法可以重载<
class TestClass {
public:
ostream& operator<<(ostream& os) {
return os << "I'm in the class, msg=" << msg << endl;
}
private:
string msg;
};
int main(int argc, char** argv) {
TestClass obj = TestClass();
cout << obj;
return 0;
}
我能想到的唯一方法是在类之外重载运算符:
ostream& operator<<(ostream& os, TestClass& obj) {
return os << "I'm outside of the class and can't access msg" << endl;
}
但是,访问对象私有(private)部分的唯一方法是与运算符(operator)函数建立 friend 关系,并且我宁愿尽量避免与 friend 结伴,并要求您提供替代解决方案。
有关如何进行的任何评论或建议都将有所帮助:)
最佳答案
您偶然发现了实现此功能的规范方法。你所拥有的是正确的。
关于c++ - 重载运算符<<,作为成员进行打印,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8475940/