나는 전에 실제로 해본 적이없는 것을하려고합니다. 나는 기본적으로 3 개의 수업을 가지고 있습니다. 클래스 A는 순수 가상 메서드가있는 추상 클래스입니다. 클래스 B는 클래스 A의 가상 메서드와 같은 이름의 메서드가 포함 된 클래스입니다. 클래스 C에서 모든 것을 함께 묶으려고합니다. C에서 클래스 B와 A (다중 상속)를 상속하고 클래스 B의 메소드를 사용하여 클래스 A의 메소드를 구현합니다. 이렇게하면 모듈 방식으로 접근합니다. 아래 예제는 내 코드가 매우 단순화 된 버전입니다. "추상적입니다 : ') INT methodA를 (인해 다음과 같은 멤버로 추상 클래스를 인스턴스화 할 수 없습니다"상속 된 클래스에서 추상 메서드 구현
class A {
virtual int methodA() = 0;
virtual int methodB() = 0;
virtual int methodC() = 0;
};
class B { //B implements A.A() and A.B()
int methodA() { return 0; };
int methodB() { return 0; };
};
class C : A, B {
int methodC() { return 0; }; //C implements A.C()
};
I 클래스 C를 컴파일 할 수 있지만 나는 C new C()
의 클래스를 구성하려고 할 때 말 컴파일러 메시지가 표시됩니다.
클래스 C에서 다중 상속을 통해 클래스 B를 사용하여 클래스 A를 구현할 수 있습니까?
편집 : 소원은 클래스 B 콘크리트를 유지하는 것입니다.
은'B'가 직접 메소드를 구현? –
@ MarkB 나는 B를 재사용하기를 원합니다. 클래스 A는 클래스 C에서 구현되는 메소드를 포함합니다. –
정말로 이것을하고 싶다면 B에 대한 더미 메소드를 구현할 수 있습니다. "정말로 원한다면"라고하는 유일한 이유는 이것이 아주 좋은 "코드 냄새." 어쩌면 당신이 해결하려고하는 실제 문제에 대해 좀 더 설명 할 수 있습니다. 그리고 여기 누군가가 당신에게 구현을 바꿀 수 있습니다. – DubiousPusher