1、
c++宣告類的關鍵字是class、struct、union,多數用class.
例如:
class a;
c++宣告派生類的定義如下:
class 《派生類名》:《派生方式》《基類名》
;
其中:
⑴ 繼承方式關鍵字為private、public和protected,分別表示私有繼承、公有繼承和保護繼承。預設的繼承方式是私有繼承。繼承方式規定了派生類成員和類外物件訪問基類成員的許可權.
⑵ 派生類成員是指除了從基類繼承來的成員外,新增加的資料成員和成員函式。正是通過在派生類中新增加成員來新增新的屬性和功能,來實現**的復用和功能的擴充的。
class b:a;
如果b中重寫了a 中的c方法,使用a的指標呼叫c方法,執行的是a的c方法。使用b的指標呼叫c方法,執行的是b的c方法。
如果a中宣告的c方法是虛函式,且b中重寫了a中的c方法,則無論使用a的還是b的指標都是呼叫派生類b的c方法。呼叫虛函式,預設呼叫派生類的虛函式實現。
2、
虛函式宣告如下:
virtual returntype functionname(parameter);
虛函式必須實現,如果不實現,編譯器將報錯。
純虛函式宣告如下:
virtual returntype functionname(parameter)=0;
純虛函式是抽象的,沒有方法體實現。純虛函式一定沒有定義,純虛函式用來規範派生類的行為,即介面。
3、
包含純虛函式的類是抽象類,抽象類不能定義例項,但可以宣告指向實現該抽象類的具體類的指標或引用。
c++介面的宣告也是用class關鍵字,但宣告中只有純虛函式。
class iperson
;
virtual ~iperson()=0;//注意,最好要定義此虛析構函式,能夠避免其實現不能正常呼叫析構函式的問題
//提供給外面使用的介面一般採用純虛函式
virtual void setname(const string &strname)= 0;
virtual const string getname()= 0;
virtual void work()= 0;
class iperson
;
virtual ~iperson()=0;//注意,最好要定義此虛析構函式,能夠避免其實現不能正常呼叫析構函式的問題
//提供給外面使用的介面一般採用純虛函式
virtual void setname(const string &strname)= 0;
virtual const string getname()= 0;
virtual void work()= 0;
}
繼承介面的類,必須實現介面的方法。
C 學習總結
using system using system.collections.generic using system.text namespace helloworld class fraction class program console.writeline sum private static...
C 學習總結( )
1 based code 是為了向後相容用的。2 mfc提供的由cdialog派生的類 derived dialog class purpose ccolordialog 選擇顏色 cfiledialog 選擇檔名以開啟或儲存 cfindreplacedialog 查詢或替換對話方塊 cfontdi...
C 學習總結
用一段 來表示的話就是這樣了 void main int date 1 while date 17 cout 第 這種教學方式,在讓自己增長知識的同時還考驗著乙個人對堅持做一件事的決心和毅力。相對於前者來說,我感覺在社會中後者的作用可能會更大吧。現在我發現部落格對我的吸引力更大了,當看到自己的十分用...