내 질문과 관련된 답변을 찾을 수 없었습니다. 내가 본 것을 "이상한"사례라고 생각합니다.오류 : 'class'유형이 'class'의 직접적인 기반이 아닙니다.
그래서 Child1
을 상속하는 클래스 Child2
은 Parent
에서 상속됩니다. Parent
에는 생성자가 없습니다.
Child1.h :
void Child1::foo(unsigned int i)
{
// ...
}
:
class Child1 : virtual public Parent
이 내가 Child2
의 생성자에서 호출 할 수있는 기능입니다 여기
내가 상속하는 방법입니다 어린이 2
Child2::Child2() : Child1()
{
foo(10);
}
foo()
은 Child2
에 없으므로 올바르게 이해하면 모호하지 않아야합니다.
그러나,이 오류가 발생할 수 :
Child2.cpp: In constructor ‘Child2::Child2()’: Child2.cpp:12:28: error: type ‘Child1’ is not a direct base of ‘Child2’ Child2::Child2() : Child1()
Child1
의 생성자가 작동을, 그래서 나는 그것을 밖으로 떠 났어요. 이 경우 중요한지 확실하지 않습니다.
이 경우 중요하지 않을 수도 있습니다. [mcve]를 제공해야합니다. 결국, 문제가 무엇인지 모를 경우, 남긴 것들이 다른 사람들이 당신을 도울 수 있기 위해 필요한 것이 아니라는 것을 어떻게 알 수 있습니까? – Peter
'foo' 함수의 선언을 공유하십시오. – MKR