point *pp=new circle;
//基類指標指向派生類
delete pp;
//僅執行基類析構函式
#include
using namespace std;
class
base
virtual ~base();
virtual void fun()}
;class
derived
:public base
;~derived(
)//虛函式
void fun(
)//虛函式 }
;int main(
)
►在許多情況下,不能在基類中為虛函式給出乙個有意義的定義, 這時可以將它說明為純虛函式(pure virtual function) , 將具體定義留給派生類去做。
純虛函式的定義形式為:
virtual 返回型別 函式名(形式引數列表)=0
;
#include
using namespace std;
class
sharp
//sharp類, 抽象類,不會定義charp物件
;class
circle
:public sharp//circle類表示圓
virtual double area(
)//虛函式
virtual double volumn(
)//虛函式
private:
double r;};
class
cylinder
:public circle//cylinder表示圓柱體
virtual double volumn(
)//虛函式
private:
double h;};
int main(
)
虛函式,純虛函式,抽象類
1 虛函式 include includeusing namespace std class animal 執行結果 2 純虛函式 抽象類 include includeusing namespace std class animal class mouse public animal void c...
抽象類 純虛函式 虛函式
抽象類是一種特殊的類,它是為了抽象和設計的目的為建立的,它處於繼承層次結構的較上層。1 抽象類的定義 稱帶有純虛函式的類為抽象類。2 抽象類的作用 抽象類的主要作用是將有關的操作作為結果介面組織在乙個繼承層次結構中,由它來為派生類提供乙個公共的根,也就是說抽象類是為派生類服務的。純虛函式作為基類中的...
虛基類 虛函式 純虛函式和抽象類
一 虛基類 在 多繼承 中講過的例子中,由類a,類b1和類b2以及類c組成了類繼承的層次結構。在該結構中,類c的物件將包含兩個類a的子物件。由於類a是派生類c兩條繼承路徑上的乙個公共基類,那麼這個公共基類將在派生類的物件中產生多個基類子物件。如果要想使這個公共基類在派生類中只產生乙個基類子物件,則必...