【发布时间】:2011-07-07 12:04:37
【问题描述】:
在 Java 中,当一个类覆盖 .toString() 并且您执行 System.out.println() 时,它将使用它。
class MyObj {
public String toString() { return "Hi"; }
}
...
x = new MyObj();
System.out.println(x); // prints Hi
如何在 C++ 中实现这一点,以便:
Object x = new Object();
std::cout << *x << endl;
会输出一些我为Object 选择的有意义的字符串表示形式吗?
【问题讨论】:
-
你不应该用
new动态分配对象(它不会编译)。 -
在 C++ 中,使用
Object* x = new Object(); cout << *x;或Object x; cout << x;