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 類,是不會有虛函式表的 如果派生類是多重繼承,則有多少個有虛函式的基類,就對應有多少個虛函式表。這說明沒有另外生成乙個派生類自己的虛函式表指標。那派生...