我可以重載例如cout
函數的返回值嗎? 我有,例如這個類:超載類
class Xxx
{
string val = "3";
}
現在我想在cout
回到"3"
沒有其他方法。 我想的是:
Xxx myVar;
cout<<myVar;
打印"3"
作爲其結果。
我可以重載例如cout
函數的返回值嗎? 我有,例如這個類:超載類
class Xxx
{
string val = "3";
}
現在我想在cout
回到"3"
沒有其他方法。 我想的是:
Xxx myVar;
cout<<myVar;
打印"3"
作爲其結果。
通常的做法是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
其他輸出流,例如,文件。
最近我一直在使用'template
@BoBTFish我會說這絕對是值得的,爲什麼只限於'char'。 OP目前可能處理得太多了。 – juanchopanza
你試過調查嗎?這裏有一個提示,這不是C:http://stackoverflow.com/questions/4421706/operator-overloading – chris