でネストされたクラスのために合成されない: はなぜ==演算子である私がコンパイルしようとした場合、自動的にC++
class Outer
{
class Inner
{
int t;
};
public:
Inner inner_;
bool operator ==(Outer rightSide);
};
bool Outer::operator ==(Outer rightSide)
{
if (inner_ == rightSide.inner_)
return true;
return false;
}
が、私はエラーを取得します
ああ、私は、オペレータが==であることに気づいたことはありません:またはこれはC++
EDITの財産であります合成されることはありませんでした。私はそれが合成されていると確信していました。
Parapura Rajkumarありがとうございます!
'=='自動的なぜ内部クラスは、すべての例外 –
まずだろう...合成されることはありません、それは単に 'inner_を返す必要があります== rightSide.inner_'、第二に、それはその意味があいまいなので、あなたのために合成されません。 – Phonon
コンパイラがあなたに暗黙の演算子を与えると期待したのはなぜですか? Cf。この質問は、http://stackoverflow.com/questions/217911/why-dont-c-compilers-define-operator-and-operator – Useless