我习惯于在类中自己的对象上覆盖 Java toString() 方法,但我不确定以下代码哪里出错了:
struct Student {
std::string name;
int age;
double finalGrade;
std::string toString() {
return "Name: " + name + "\n Age: " + age + "\n Final Grade: " + finalGrade;
}
};
我才刚刚开始学习 C++,所以任何建议都将不胜感激
原文由 whelanevan6 发布,翻译遵循 CC BY-SA 4.0 许可协议
与 java 相比,C++ 不提供预定义的“toString”方法,只要请求对象的字符串表示,就会隐式调用该方法。所以你的
toString
方法必须被显式调用。然而,在 C++ 中,通过覆盖流的
operator <<
可以获得类似的东西。因此,您可以直接将对象内容“发送”到流中(无需将所有内容存储在中间字符串对象中)。您也可以使用相同的代码来填充要由toString
方法返回的字符串: