close

按此前往C++完整教學目錄

 

 

純虛擬函式(pure virtual function)抽象類別(abstract class)

類別之中,可以定義純虛擬函式,純虛擬函式就是沒有函式內容的函式。方法為:

virtual 回傳資料型別 函式名稱() = 0;

只要一個類別中至少有一個純虛擬函式,那麼這個類別就被稱為抽象類別。一個抽象類別無法產生物件,只能用來被繼承。如:

class A

{

   public:

   int a;

   A(int a_){a=a_;}

   virtual int func_test() =0  ;   // func_test是純虛擬函式

};

A A1;           //這行是錯誤示範,因A是抽象類別,故無法定義物件。

註:C++規定,繼承抽象基礎類別的衍生類別,一定要將抽象基礎類別中的純虛擬函式給實做(implement)。如:

class A

{

public:

int a;

A(){}

A(int a_){a=a_;}

virtual int func_test() =0  ;   //純虛擬函式

};

class B :public A  //B繼承A

{    

public:

int func_test(){cout<<"test success!!";}  //在此,將純虛擬函式給實做

int b;

};

 

B B1;   //如果沒有將純虛擬函式給實做,這一行會出現錯誤。

B1.func_test();   //顯示test success!!

 

 

上一篇:類別(class) 衍生類別物件的複製

下一篇:類別(class) 嵌入

arrow
arrow

    埃伯 發表在 痞客邦 留言(0) 人氣()