純虛函式及抽象類

2021-06-08 00:39:47 字數 826 閱讀 9744

一、 純虛函式

純虛函式是乙個在基類中宣告的虛函式,它在該基類中沒有定義,要求任何派生類都必須定義自己的版本。   

一般格式如下:

class <

類名》;注意:

1、 純虛函式沒有函式體;

2、 最後面的「=0」並不表示函式返回值為0,它只起形式上的作用,告訴編譯系統「這是純虛函式」;

3、 這是乙個宣告語句,最後應有分號。

4、如果在乙個類中宣告了純虛函式,而在其派生類中沒有對該函式定義,則該虛函式在派生類中仍然為純虛函式。

二、抽象類

至少帶有乙個純虛函式的類稱為抽象類(abstract class)。

抽象類只能用作其他類的基類,抽象類不能建立物件。抽象類不能用作引數型別、函式返回型別或顯示轉換的型別,但可以宣告抽象類的指標和引用。

例如:

class point

;class shape

void move(point p)

virtual void totate(int)=0;  //純虛函式的定義

virtual void draw()=0;  //純虛函式的定義

};shape x;           //錯誤:抽象類不能建立抽象

shape *p;         //可以宣告抽象類的指標

shape f();        //錯誤:抽象類不能作為返回型別

void g(shape);    //錯誤:抽象類不能作為引數型別

shape &h(shape&); //可以宣告抽象類的引用

抽象類 純虛函式

在程式中,有些時候我們的基類是不需要例項化的,比如有乙個基類哺乳動物,這個在程式實現的時候沒有必要把他例項化出來。而只是乙個種群的抽象描述,也 無法進行例項化。所以在c 我們可以建立一種叫做抽象資料型別的類。這個類 只是用來繼承的,單獨沒有例項化,沒有意義。其實這也是減少了程式設計師編寫 後除錯的除...

虛函式,純虛函式,抽象類

1 虛函式 include includeusing namespace std class animal 執行結果 2 純虛函式 抽象類 include includeusing namespace std class animal class mouse public animal void c...

抽象類 純虛函式 虛函式

抽象類是一種特殊的類,它是為了抽象和設計的目的為建立的,它處於繼承層次結構的較上層。1 抽象類的定義 稱帶有純虛函式的類為抽象類。2 抽象類的作用 抽象類的主要作用是將有關的操作作為結果介面組織在乙個繼承層次結構中,由它來為派生類提供乙個公共的根,也就是說抽象類是為派生類服務的。純虛函式作為基類中的...