-2

関数などで戻り値をオーバーロードできcoutますか? たとえば、このクラスがあります:

class Xxx
{
   string val = "3";
}

"3"これでcout、他の方法なしで戻りたいと思います。それが欲しいです :

Xxx myVar;
cout<<myVar;

"3"その結果として印刷されます。

4

1 に答える 1

1

通常のアプローチは overloasostream& 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

于 2013-05-30T09:05:41.210 に答える