1.
使用公有派生,基類的公有成員將成為派生類的共有成員;基類的私有部分也將成為派生類的一部分,但只能通過基類的公有和保護方法訪問。
2.派生類建構函式必須使用基類建構函式,意味著基類物件應當在程式進入派生類建構函式之前被建立。如果不呼叫基類建構函式,程式將使用預設的基類建構函式。
3.可將派生類物件和位址賦給基類引用和指標,被稱為向上強制轉換,不需進行顯式型別轉換,其中基類指標或引用只能用於呼叫基類方法;不可以將基類物件和位址賦給派生類引用和指標,被稱為向下強制轉換,若不使用顯式型別轉換,則不允許向下強制轉換。引用相容性屬性使得能夠將基類物件初始化為派生物件。
4.公有繼承:建立一種
is-a
關係,即派生類物件也是乙個基類物件,可以對基類物件執行的任何操作也可以對派生類物件執行。
5.如果沒有使用關鍵字
virtual
,程式將根據引用型別或指標型別選擇方法;若使用了
virtual
,程式將根據引用或指標指向的物件的型別來選擇方法。因此,經常在基類中將派生類會重新定義的方法宣告為虛方法,方法在基類中被宣告為虛的後,它在派生類中將自動成為虛方法。
注意:關鍵字
virtual
只用於類宣告的方法原型中。
6.編譯器對非虛方法使用靜態聯編,對虛方法使用動態聯編。靜態聯編效率更高。
7.建構函式不能是虛函式;
析構函式應當是虛函式,除非類不用做基類;
友元不能是虛函式,因為友元不是類成員,只有成員才能是虛函式。
8.對於外部世界來說,保護成員的行為與私有成員相似;但對派生類來說,保護成員的行為與公有成員相似。
9.當類宣告中包含純虛函式時,只用作基類,即抽象基類(
abc),不能建立該類的物件。純虛函式宣告的結尾處為
=0,在類中不能定義純虛函式。
注意:abc
描述的是至少使用乙個純虛函式的介面。
10.建構函式、析構函式、賦值運算子不能繼承。
c primer plus 第十三章課後程式設計6題
include include include define len 40 int main void 開啟檔案並輸入內容 if in fopen name,w null printf 請輸入檔案內容 n while ch getc stdin eof putc ch,in if fclose in...
c primer plus 第十三章課後程式設計7題
a 交替列印倆個檔案的每一行 include include int main int argc,const char ar if fc fopen ar 2 r null 如果第乙個檔案遇到換行符則列印第二個檔案內容,反之一樣 a 交替列印倆個檔案的每一行。利用檔案指標的特性自動遞增的特點 do ...
c primer plus 第十三章課後程式設計9題
修改程式13.3 在單詞前邊從1開始為單詞編號,程式下次執行時新增新單詞,編號接上次的編號開始 include include include define max 41 int main void puts enter words to add to the file press the puts...