純虛函數
阿新 • • 發佈:2018-04-02
oid ive ret ios 自己的 pan pos space span
??c++通過純虛函數(pure virtual function)提供未實現的函數。純虛函數申明結尾處=0。註意純虛函數本身就符號虛函數,所以前面也要有virtual。
??有純虛函數的類叫做ABC(abstract base class),迫使派生類遵循ABC設計的接口,確保派生類都至少支持ABC的功能。
純虛函數可以有自己的定義
#include <iostream>
using namespace std;
class base
{
public:
virtual void f()const=0;
};
void base::f()const
{
cout << "base" << endl;
}
class derive:public base
{
public:
virtual void f()const;
};
void derive::f()const
{
base::f();
cout << "derive" << endl;
}
int main()
{
derive d;
d.f();
return 0;
}
??上面純虛函數的定義不能出現在類的聲明中。
純虛函數