如何解决C++ 等价于 Java 的 toString?
在 C++ 中,您可以operator<<
为ostream
您的自定义类重载:
class A {
public:
int i;
};
std::ostream& operator<<(std::ostream &strm, const A &a) {
return strm << "A(" << a.i << ")";
}
这样你就可以在流上输出你的类的实例:
A x = ...;
std::cout << x << std::endl;
如果您operator<<
想打印类的内部结构A
并且确实需要访问其私有和受保护成员,您还可以将其声明为友元函数:
class A {
private:
friend std::ostream& operator<<(std::ostream&, const A&);
int j;
};
std::ostream& operator<<(std::ostream &strm, const A &a) {
return strm << "A(" << a.j << ")";
}
解决方法
我想控制写入流的内容,即cout
自定义类的对象。这在 C++ 中可能吗?在 Java 中,您可以出于类似目的覆盖该toString()
方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。