2014-09-02 3 views
0

나는 추상 클래스 * _abstract에 대한 포인터를 보유하고있는 General 클래스를 가지고 있다고 가정 해 보겠습니다. 일반 복사 생성자를 구현하려면 어떻게해야합니까?복사 생성자 추상 클래스에 대한 포인터 복사

나는 이것을 시도하지만 실패 : 나는 또한 시도

General::General(const General &other) 
{ 
    *_abstract = *other._abstract; 
} 

: (생성자) 당신이 필요한 경우

답변

1

때문에 추상 클래스의 초기화 불가능하다

General::General(const General &other) 
{ 
    *_abstract = new Abstract(); 
    *_abstract = *other._abstract; 
} 

그런 다음 추상 클래스를 자세히 복사 한 다음 추상 클래스에 가상 복제 함수를 추가하고이를 복사합니다.

understanding virtual copy constructors

+0

나는 당신이 말한 것을 보여주는이 링크를 발견했습니다. 감사합니다! http://www.parashift.com/c++-faq/copy-of-abc-via-clone.html –