2012-10-27 55 views
0

我想知道如何使用C++調用抽象類的遞歸函數。C++:調用Abstact函數的遞歸函數

//A.h 
     class A { 
    public: 
    virtual void some() = 0 ; 

    }; 

    //B.h 
     #include "A.h" 
    class B : public A { 
    public: 
    void some() ; 

    }; 

    // B.cpp 


    void B::some(){ 
    system("pause"); 
} ; 


    //C.h 
    #include "B.h" 
class C : public B { 
public: 
static void callF() ; 

}; 

    // C.cpp 

    void C::callF(){ 
    some(); 

};

我編輯了代碼。還是行不通。

回答

0

只需使用somefunction()C::callingF()例如像

void C::callingF() 
{ 
    if (somecondition) 
    somefunction(); 
} 

身體內部,你可以使用ptr->somefunction()如果ptr是指向一些CB即指向一些A

但請拿數小時閱讀一本關於C++編程語言的好書。幾分鐘後我們無法在這裏解釋。一本書解釋得更好...

1

在A和B中,函數應該是public或protected。

+0

@Mankarse致謝,編輯 – SomeWittyUsername

+0

謝謝,我已經公開這些方法。但它仍然不起作用 – twistedfate

+0

[Worksforme](http://liveworkspace.org/code/b8ab1847935c8b4e34f4273e56fabe43)。 – Mankarse