【发布时间】:2015-01-31 21:07:45
【问题描述】:
我刚刚遇到了this question,这是关于如何能够通过打印对象
std::cout << x << std::endl;
据我了解,实现此目的的标准方法是重载 ostreams
替代方法(也作为上述问题的答案)是覆盖字符串转换运算符。然而,这伴随着导致“无意转换和难以追踪的错误”的警告。
现在我想知道编写一个 toString() 方法然后通过它使用它是否有任何缺点
std::cout << x.toString() << std::endl;
【问题讨论】:
-
你将如何为
int做到这一点?还是你的意思是to_string? -
因为使某些东西可流式传输与将其转换为字符串不同。如果您希望您的类型可流式传输,请重载
ostream& operator<<。如果你想用它制作字符串,给它一个 to_string 成员。
标签: c++ string operator-overloading iostream cout