C++ Primer 5th笔记(chap 15 OOP)继承之派生类
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 15 OOP)继承之派生类
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 構(gòu)造函數(shù)
每個類控制它自己的成員初始化過程:盡管派生類包含了從基類繼承而來的成員,但是派生類不能直接初始化這些成員,而是需要使用基類的構(gòu)造函數(shù)來初始化它們。
- 派生類對象的基類部分與派生類對象自己的數(shù)據(jù)成員都是在構(gòu)造函數(shù)的初始化階段執(zhí)行初始化操作
- 首先會初始化基類的部分,然后按照聲明的順序依次初始化派生類的成員
eg.
- 首先會初始化基類的部分,然后按照聲明的順序依次初始化派生類的成員。
2. 靜態(tài)成員
如果基類定義了一個靜態(tài)成員,則在整個繼承體系中只存在該成員的唯一定義,無論從基類中派生出來多少個派生類,對于每個靜態(tài)成員來說都只存在唯一的實例。
2.1訪問控制規(guī)則
靜態(tài)成員遵循通用的訪問控制規(guī)則。如果某個靜態(tài)成員是可以訪問的,那么既可以通過基類也可以通過派生類使用它。
3. 派生類的聲明
派生類的聲明包含類名但是不包含它的派生列表:
class Bulk_quote : public Quote; // 錯誤,派生類列表不能出現(xiàn)在這里 class Bulk_quote; // 正確,聲明派生類的正確方式4. 被用作基類的類
如果想使用某個類作為基類,則該類必須是已經(jīng)定義而非僅僅聲明:主要是構(gòu)造函數(shù)和成員變量必須定義,因為子類的構(gòu)造函數(shù)必須使用父類的構(gòu)造函數(shù)。
class Quote; // 聲明,但未定義 class Bulk_quote : public Quote {...}; // 錯誤,Quote必須先被定義- 派生類中包含并且可以使用它從基類繼承而來的成員,為了使用這些成員,派生類當然要先知道它們是什么,因此規(guī)定還有一層隱含的意思,即一個類不能派生它本身。
- c++中類,是在實例化時才會查找相關(guān)代碼,沒有使用就不會生成對應代碼,函數(shù)無論使用都會生成。類會自動生成一個namespace,其中的靜態(tài)成員和靜態(tài)變量,相當于namespace中的變量和函數(shù)。
5.防止繼承的發(fā)生
如果想定義一個類并且不希望從它派生出新的類,可以禁止繼承的方式,C++ 11 新標準中在類名后面緊跟一個關(guān)鍵字 final 即可實現(xiàn):
class NoDerived final{/*...*/}; // NoDerived 不能作為基類總結(jié)
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 15 OOP)继承之派生类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: s3c2440移植MQTT