에서 중첩 클래스를 합성하지 : 이유는 == 연산자 내가 컴파일하려고하면 자동으로 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;
}
내가 오류가 발생
아, 내가 연산자는 == 것을 결코 실현되지 : 또는이
가 EDIT C++
의 속성입니다 합성되지 않았고, 나는 그것이 합성된다는 확신을했기 때문에, 확인하기가 번거롭지 않았다.Parapura Rajkumar 감사합니다!
'=='자동으로 합성되지 않습니다 것은 ... 이유는 내부 클래스가해야 단순히'반환 inner_ == rightSide.inner_', 예외 모든 –
먼저 것, 둘째로 네, 그것은 의미가 모호하기 때문에 합성되지 않을 것입니다. – Phonon
왜 컴파일러에서 암시 적 연산자를 제공하겠습니까? Cf. 이 질문에 http://stackoverflow.com/questions/217911/why-dont-c-compilers-define-operator-and-operator – Useless