<<
演算子のオーバーロードの戻り値の型がstd::string
の場合、コンパイラがエラーを起こしている理由を理解できません。私が理解するのを助けてくれますか?<< operator overload with std :: stringを返すエラー
ベローは再現可能な例であり、巨大なエラーが発生します。
class XY
{
int X__;
int Y__;
public:
XY(int x, int y):X__(x), Y__(y){}
~XY(){}
std::string operator<<(const XY_cartesiano& c)
{
std::stringstream ss;
ss << "{ " << X__ << ", " << Y__ << " }";
return ss.str();
}
int x() const{return X__;}
int y() const{return Y__;}
};
void main()
{
XY a(1,2);
std::cout << a;
}
、しかし、2つの連続したアンダースコア( 'X__'、' Y__')と大文字が続くアンダースコアで始まる名前を含む名前:あなたはあなたが得るストリームに直接書き込みます実装で使用するために予約されています。あなたのコードでそれらを使用しないでください。 –