반응형

블로그 이미지


operator 는 상속되지 않는다



그래서 다음과 같은 에러를 벹는다


class ttt

{

public :


void operator=(int a) {

std::cout  << "ttttt "<< a << std::endl;

}

};



class ddd : public ttt

{

public :

};



int main()

{


ddd d1;

d1.operator=(10);



오류 C2664 'ddd &ddd::operator =(ddd &&)': 인수 1을(를) 'int'에서 'const ddd &'(으)로 변환할 수 없습니









그런데 c++ 11 에서부터 생성자를 상속 받을 수 있는 상속생성자 using 을 제공하는데


이때 operator 또한 상속 받을 수 있게 지원해준다



class ttt

{

public :


void operator=(int a) {

std::cout  << "ttttt "<< a << std::endl;

}


};



class ddd : public ttt

{


public :


using ttt::operator=;

};



int main()

{


ddd d1;

d1.operator=(10);


return 0;

}


좀 더 자세한 using 은 http://3dmpengines.tistory.com/1606 상속 생성자를 참고..

반응형

+ Recent posts