2016-08-21 3 views
0

일부 가상 함수를 포함하는 기본 클래스 'a'가 있으며 파생 클래스 'b'에 해당 함수가 오버로드됩니다. 이제 'b'에서 파생 된 'c'클래스가 하나 더 있고 클래스 C에 대한 포인터가 있습니다. 그러나 'c'클래스 포인터에서 해당 함수를 호출하는 방법을 알 수 없습니다. 나를 도와주세요, 어쩌면 그 어리 석다. 그러나 나는 여기에서 붙어있다.파생 클래스 포인터가 기본 클래스 함수를 호출 할 수있는 방법

답변

1
struct A { virtual void foo() {} }; 
struct B: A { void foo() override {} }; 
struct C: B {}; 

auto main() -> int 
{ 
    C o; 
    C* p = &o; 

    p->foo(); // Calls B::foo 
    p->A::foo(); // Calls A::foo 
} 
0

cC에 대한 포인터 인 경우 : 힌트 에 대한

c->A::method(); 
+0

덕분에 내가 Qt는 (C++ GUI 라이브러리)에서 일하고 있다는 점에서 나는 연결 기능을 더욱 구체적으로 어떤 이건 connect ("C 클래스 포인터", SIGNAL (클래스 FUNC), 다른 ptr, SLOT (함수))와 같습니다. 지금은이 func를 사용하고 있는데 FUNC가 C 클래스가 아닌 오류가 발생합니다 거기에 어떤 해결책이 있습니까? –

관련 문제