cout的C ++格式<<自动

时间:2011-07-21 01:30:55

标签: c++ cout

如果我有一个带有两个变量x和y的简单类,以及一个返回带数据的格式化字符串的函数ToString()。当我打电话

cout << simpleClass << "\n";

任何人都知道一种方法我可以自动调用simpleClass.ToString来返回格式正确的字符串吗?我猜有一种方法可以用操作符函数来完成这个操作,但我不知道怎么做。

2 个答案:

答案 0 :(得分:9)

如果您问如何定义这样的运算符,

template<class CharT, class TraitsT>
std::basic_ostream<CharT, TraitsT>&
operator <<(std::basic_ostream<CharT, TraitsT>& os, SimpleClass const& sc)
{
    return os << sc.ToString();
}

答案 1 :(得分:2)

您定义

std::ostream& operator <<(std::ostream&, const SimpleClass&)

致电ToString(),传递ostream&,然后返回ostream&