程式設計經驗 程式設計習慣 虛類無法被例項化

2021-07-03 08:40:29 字數 919 閱讀 3990

vs編譯報錯

error c2259: 'ca' : cannot instantiate abstract classc:\users\administrator\documents\visual studio 2010\projects\test1\test1\main.cpp 處理

#include #include using namespace std;

class ca

virtual ~ca(){}

virtual void func1() = 0; //父類,有虛函式,則無法被例項化(無法被new出乙個物件來)

};class ca_1:ca

virtual ~ca_1(){}

//virtual void func1() = 0; //不實現父類的虛函式,編譯會報錯!

};class ca_2:ca

virtual ~ca_2(){}

virtual void func1() = 0; //寫出來,但依然沒寫父類虛函式的實現,編譯會報錯!

};class ca_3:ca

virtual ~ca_3(){}

void func1() //寫出了父類的虛函式實現,編譯通過! };

int main()

含有虛函式的類是虛類,虛函式用關鍵字virtual宣告。虛函式表明只有在程式使用到該函式時,才獲得與呼叫物件對應的該函式的實現。

類要想被例項化,則類裡面的虛函式都要寫實現!!!

養成好習慣

1.寫類的時候,立馬就把public:建構函式,析構函式(寫成虛的),繼承關係,以及純虛函式宣告好!

2.寫子類的時候,若子類還有子類,則可以不實現虛函式。但是若再沒有子類了,就一定要把所有的虛函式實現都寫上。

C 程式設計例項 類與指標

實驗9類與指標 實驗目的 通過本實驗,強化理解指標變數指向類的資料成員 成員函式及類物件的概念。實驗要求 熟練掌握指標變數指向類的資料成員 成員函式及類物件的方法。實驗內容 練習下面的程式,理解指標變數指向類的資料成員 成員函式及類物件的方法。include usingnamespacestd cl...

虛基類的簡單應用 C 程式設計

c 編譯系統只執行最後的派生類對虛基類的建構函式的呼叫,而忽略虛基類的其他派生類對虛基類的建構函式的呼叫,這就保證了虛基類的資料成員不會被多次初始化。多重繼承派生類 虛基類 include include include using namespace std class person 基類 人 p...

物件導向程式設計 虛函式表和虛基類表

一 虛函式表 每個含有虛函式的類有一張虛函式表 vtbl 表中每一項是乙個虛函式的位址,也就是說,虛函式表的每一項是乙個虛函式的指標。沒有虛函式的c 類,是不會有虛函式表的 如果派生類是多重繼承,則有多少個有虛函式的基類,就對應有多少個虛函式表。這說明沒有另外生成乙個派生類自己的虛函式表指標。那派生...