我可以在cout
函数上重载返回值吗?
我有这样的课程:
class Xxx
{
string val = "3";
}
现在我想在没有其他方法的情况下在"3"
上返回cout
。
我想要那个:
Xxx myVar;
cout<<myVar;
打印"3"
作为结果。
答案 0 :(得分:1)
通常的方法是overloas ostream& operator<<(ostream&, T)
。在这里,val
是为了简单起见而公开的:
class Xxx
{
public:
std::string val = "3";
}
#include <ostream>
std::ostream& operator<<(std::ostream& o, const Xxx& x)
{
return o << x.val;
}
然后
Xxx x;
std::cout << x << std::endl; // prints "3"
此方法意味着您还可以将Xxx
的实例流式传输到std::cout
以外的输出流类型,例如文件。