[C/C++ 開發] 虛函數和純虛函數的區別

  • 虛函數是在基類中被聲明爲virtual,並在派生類中重新定義的成員函數,可實現成員函數的動態重載

  • 純虛函數只是在基類中不需要寫函數實現

 

class A {
public:
    A();
    virtual ~A();
    void f1();
    virtual void f2();
    virtual void f3()=0;
}; 
	
class B:public A{
public:
    B();
    virtual ~B();
    void f1();
    virtual void f2();
    virtual void f3();
}; 
8
	
int main(int argc,char * argv[]) {
    A *m_j = new B();
    m_j -> f1();
    m_j -> f2();
    m_j -> f3();
    delete m_j;
    return 0;
}

m_j是用A來聲明,所以m_j->f1()方法,會調用A類f1()方法

f2()子類改寫了父類的方法。有virtual的,會調用m_j中真實對象的方法。

f3()與f2()一樣,只是在基類中不需要寫函數實現.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章