関数などで戻り値をオーバーロードできcout
ますか? たとえば、このクラスがあります:
class Xxx
{
string val = "3";
}
"3"
これでcout
、他の方法なしで戻りたいと思います。それが欲しいです :
Xxx myVar;
cout<<myVar;
"3"
その結果として印刷されます。
関数などで戻り値をオーバーロードできcout
ますか? たとえば、このクラスがあります:
class Xxx
{
string val = "3";
}
"3"
これでcout
、他の方法なしで戻りたいと思います。それが欲しいです :
Xxx myVar;
cout<<myVar;
"3"
その結果として印刷されます。
通常のアプローチは 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