一.概念:派生類,基類
protected的成員,只能在成員方法中訪問
預設繼承方式為private
二.例項化方式:
(1)堆中例項化物件:
worker *p=new worker();
delete p; //delete手動釋放記憶體,否則記憶體洩漏
p=null; //將指標至於安全狀態
(2)棧中例項化物件:
worker worker;//系統自動釋放記憶體
三.覆蓋與隱藏:
(1)覆蓋:父類存子類物件
(2)隱藏:同名即可
四.建構函式:
(1)宣告:
worker(int code=0,string name=」jim」);//可以不賦值
(2)定義:
worker(int code,string name):person(name) //初始化列表
五.形參—>實參:
(1)p—>p;建立臨時物件
(2)p—->&p引用,即別名; 靠「p.」呼叫成員
(3)&p–>*p指標; 靠「p->」呼叫成員
ps:
在例項化臨時引數物件時,呼叫的是拷貝建構函式
person::person(const person &)//拷貝建構函式的示例
六.虛析構函式:
(1)引入原因:父類指向堆中的子類物件,在釋放記憶體時,只執行父類析構函式,會造成記憶體洩漏;
(2)適用:基類
(3)誤用弊端:會為類增加乙個虛函式表,使得物件的體積翻倍,還有可能降低其可移植性
(4)繼承:繼承的虛函式在子類中仍是虛函式,可以被覆蓋
(5)建議:雖然其子類析構函式也自動為virtual,但建議寫上virtual,會更明了一些
七.虛繼承:虛繼承並沒有獲得底層子類引數的傳遞,引數只是頂層父類的預設引數
八.多繼承與多重繼承的區分
1.」」與<>區別:」」在當前路徑查詢檔案,<>在預設庫中查詢檔案
2.解決重定義 —-巨集定義:
3.stdlib.h檔案下的system(「pause」)讓cpu處於等待狀態,不能執行其他任務,造成浪費
1.變數命名方法:資料型別+資料意義;eg:iage,strname (若為屬性,則在前面加上m_)
2.利用好protected,private,public的資料許可權
3.父類預設建構函式要寫,因子類例項化時呼叫了父類的預設建構函式,除非子類建構函式的初始化列表裡寫了父類的含參建構函式
c 三大特性之 繼承
繼承 乙個非常自然的概念,現實中的很多事情都是具有繼承性的。類似於自己繼承父母的特性,這也是繼承的特性 而繼承的上層稱為基類,下一層就叫做派生類。格式 class 派生類 繼承方式 基類 繼承 例如 include using namespace std class person class stu...
C 三大特性 繼承
繼承 類的繼承,就是新的類從已有類那裡得到已有的特性。原有的類稱為基類或父類,產生的新類稱為派生類或子類。派生類的宣告 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,繼承方式 基類名n 在 c 中,乙個派生類可以同時有多個基類,這種情況稱為多重繼承。如果派生類只有乙個基類,稱為單繼承...
C 三大特性之封裝,繼承,多型
在嵌入式的軟體開發過程中大多是使用c這種面向過程的語言來開發,從效率上來說c語言已經非常高了,使用在硬體資源比較緊張的嵌入式系統來說是最好不過的選擇了,隨著硬體效能的提公升,以及硬體 的下降,c 逐漸應用於嵌入式系統中了,c 語言在編譯器開優化的情況下,效率已經接近c語言了,並且提供了更高階的語言特...