class A
{
int Avalue;
A& operator=(A& copyMe)
{
Avalue = copyMe.Avalue;
return *this;
}
}
class B:public A
{
int Bvalue;
B& operator=(B& copyMe)
{
Bvalue = copyMe.Bvalue
return *this;
}
}
B의 대입 연산자에서 A 또는 기본 클래스 대입 연산자를 호출하는 방법? 대입 연산자 호출에서 A의 반환 참조를 처리하는 방법.상속 클래스에서 대입 연산자를 재정의하십시오.
: A의 복사 할당 연산자에 액세스하려면, 당신은 공개로 지정해야 const A & copyMe) B & operator = (const B & copyMe) – Rollie
실제로 변경되지 않는 무언가를 전달할 때마다 const가되도록 상처를 입히지 않습니다. 멤버 메소드에도 적용됩니다. 아무것도 변경하지 않으면 const로 만듭니다. 그것은 신경과 시간을 절약합니다. 또한, 나는 그것에 일찍 들어가는 것이 좋습니다. 코드가 수행해야하는 작업과 수행해서는 안되는 작업에 대해 더 많이 생각하기 시작합니다. –
더 중요한 점은 복사 생성자를 쓰지 않고도 복사 할당 연산자를 작성하는 것은 거의 불가능합니다. 이 경우 기본 복사 생성자가 괜찮기 때문에 이탈하지 않을 것이지만 기본 할당 연산자도 마찬가지이므로 어느 것도 정의 할 필요가 없습니다. (또한이 클래스의 경우 copyMe를 할당 op 대신 참조로 전달합니다. 컴파일러가 최적화하는 것이 더 쉽고 사실 더 쉽습니다. 한 쌍의 정수는 중요하지 않습니다.) – abarnert