|
C++에서 다중 상속 당연히 잘 됩니다.
링크에러는 아마도 상속한 클래스에 구현해줘야 할 함수가 있거나, 상속한 클래스의 실제 구현 내용이 없어서 일 겁니다.
다중 상속에 관해 아무런 문제가 없으니, 코드를 차근차근히 문법에 기초해 살펴보시기 바랍니다.
df 님이 쓰신 글 :
: 허접한 질문이라도 양해를.. 초보라..
: 걍 혼자 생각해본건데 외부에서 가져온 클래스를 수정없이 상속받아서 내가만든 슈퍼클래스에 갖다붙이는게 가능할까해서요. 물론 vcl 은 안되는건 압니다. 걍 호기심차원에서..
: 이렇게 해보았습니다.
:
: #include <stdio.h>
: //----------------------------------------------------------------------------
: class TTest
: {
: public:
: void PrintA(){printf("hello ");};
: void PrintB(){printf("world!\n");};
: };
: //-------------------------------------------------------
:
: class TGreet
: {
: public:
: virtual void PrintA();
: virtual void PrintB();
: };
:
: class TGreetEn : public TGreet, public TTest
: {
: //
: };
:
: int main(int argc, char* argv[])
: {
: TGreet* Greet = new TGreetEn;
: Greet->PrintA();
: Greet->PrintB();
: delete Greet;
: getchar();
: return 0;
: }
: //---------------------------------------------------------------------------
:
: TTest 가 어디서 가져온 수정하기싫은 클래스라고 치고요, TGreenEn 에서 다중상속을 통해 상위추상 메소드들을 구현했다고 쳐주면 안되는건지..
: 실행해보니 컴파일까지 되는데 링크에서가 나네요.
: 흠.. 개념없는 삽질한건지.. 궁금합니다.
|