-
虛函數是在基類中被聲明爲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()一樣,只是在基類中不需要寫函數實現.