GeekBand C++面向?qū)ο蟾呒壘幊蹋ㄉ希?2


1. Big There —— 三個特殊函數(shù)

  1. 拷貝構(gòu)造(copy ctor)

  2. 拷貝構(gòu)造函數(shù)的第一個參數(shù)必須時自身類類型的引用,而且?guī)缀蹩偸且粋€const的引用般婆;

  3. 如果類未定義自己的拷貝構(gòu)造橄维,則編譯器會合成一個浩村;

  4. class with pointer members 必須有 copy ctor 和 copy op=,因為使用默認的會指針會指向同一個東西椒功;

  5. 拷貝賦值(copy cp=)

  6. 其實就是重載賦值運算符;

  7. 返回值是左側(cè)對象的引用智什;

  8. 函數(shù)體內(nèi)第一步就是進行檢測自我賦值(self assignment),如果不檢測的話动漾,不僅效率會降低,而且可能會導(dǎo)致錯誤荠锭;

  9. 步驟:

    1. 檢測自我賦值旱眯;
    2. 先將自己delete
    3. 創(chuàng)建一個足夠大的空間;
    4. 拷貝賦值证九;
  10. return *this;

  11. 析構(gòu)函數(shù)(dtor)

  12. dtor 是類的一個成員函數(shù)删豺,名字有波浪號接類名構(gòu)成;

  13. 它沒有返回值愧怜,也不接受參數(shù)呀页,只會有唯一一個析構(gòu)函數(shù);

  14. 作用:釋放對象在成存期分配的所有資源拥坛;

  15. 隱式銷毀一個內(nèi)置指針類型的成員不會delete它所指的對象蓬蝶;


2. 所謂棧(stack),所謂堆(heap)

  1. 靜態(tài)內(nèi)存用來保存局部static對象猜惋,類static數(shù)據(jù)成員疾党,以及定義在任何函數(shù)之外的變量;
  2. Stack:棧內(nèi)存用來保存定義在函數(shù)體內(nèi)的非static對象
  3. heap : 是指由操作系統(tǒng)提供的一塊global內(nèi)存空間惨奕,程序可動態(tài)分配從其中獲得若干區(qū)塊雪位;

3. 關(guān)于new , 關(guān)于delete

  1. 基礎(chǔ)知識——來源于c++ primer P400

分配在靜態(tài)或棧內(nèi)存中的對象由編譯器自動創(chuàng)建和銷毀,對于棧對象梨撞,僅在其定義的程序塊運行時才存在雹洗,static對象在使用之前分配香罐,在程序結(jié)束是銷毀;但是除了靜態(tài)內(nèi)存和棧內(nèi)存时肿,每個程序還擁有一個內(nèi)存池——堆(heap)庇茫,程序用堆來存儲動態(tài)分配的對象——也就是,那些程序在運行時分配的對象螃成,動態(tài)對象的生存期有程序來控制旦签,也就是說,當(dāng)動態(tài)對象不再使用時寸宏,我們必須顯示銷毀它們宁炫。

  1. 在c++中,new 和 delete 是一對來進行動態(tài)內(nèi)存管理的運算符

    1. new : 在動態(tài)內(nèi)存中為對象分配空間并返回一個指向該對象的指針氮凝;
    2. delete : 接受一個動態(tài)對象的指針羔巢,銷毀該對象,并釋放與之關(guān)聯(lián)的內(nèi)存罩阵;
  2. 通過老師對動態(tài)分配所得的 array 的講解竿秆,得出一個重要結(jié)論:array new 一定要搭配 array delete.


4. OOP

  1. Composition

  2. 表示 has-a 的關(guān)系

  3. 復(fù)合關(guān)系下的構(gòu)造與析構(gòu)

    • 構(gòu)造由內(nèi)而外:container的構(gòu)造函數(shù)首先調(diào)用component的默認構(gòu)造函數(shù);
    • 析構(gòu)由外而內(nèi):container的析構(gòu)函數(shù)首先執(zhí)行自己稿壁,然后才調(diào)用component的析構(gòu)函數(shù)
  4. Delegation

    • 用指針相連幽钢,composition by reference;
    • 分為對外不變和真正的實現(xiàn)兩部分,指針將來可以指向不同的實現(xiàn)端傅是,客戶端不受影響匪燕;
  5. Inheritance

  6. 表示 is-a 的關(guān)系;

  7. 復(fù)合關(guān)系下的構(gòu)造與析構(gòu)

    • 構(gòu)造由內(nèi)而外:derived的構(gòu)造函數(shù)首先調(diào)用base的默認構(gòu)造函數(shù)落午;
    • 析構(gòu)由外而內(nèi):derived的析構(gòu)函數(shù)首先執(zhí)行自己谎懦,然后才調(diào)用base的析構(gòu)函數(shù);
  8. 基類的析構(gòu)函數(shù)必須是virtual.

  9. 關(guān)于虛函數(shù)

    • non-virtual : 聲明non-virtual函數(shù)的目的就是為了令derived classes繼承函數(shù)的接口以一份強制性實現(xiàn)。也就是說溃斋,你不希望derived class重新override 它界拦;
    • virtual : 聲明 impure virtual 函數(shù)的目的是讓derived classes 繼承該函數(shù)的接口和函數(shù)實現(xiàn),你希望derived class 重新override ,并且你對它已有默認定義梗劫;
    • pure virtual : 聲明一個pure virtual 函數(shù)的目的是為了讓derived classes 只繼承函數(shù)接口享甸,你希望derived class 一定要重新override ,你對它沒有默認定義。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梳侨,一起剝皮案震驚了整個濱河市蛉威,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌走哺,老刑警劉巖蚯嫌,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡择示,警方通過查閱死者的電腦和手機束凑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栅盲,“玉大人汪诉,你說我怎么就攤上這事√革” “怎么了扒寄?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拟烫。 經(jīng)常有香客問我该编,道長,這世上最難降的妖魔是什么构灸? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任上渴,我火速辦了婚禮岸梨,結(jié)果婚禮上喜颁,老公的妹妹穿的比我還像新娘。我一直安慰自己曹阔,他們只是感情好半开,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赃份,像睡著了一般寂拆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抓韩,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天纠永,我揣著相機與錄音,去河邊找鬼谒拴。 笑死尝江,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的英上。 我是一名探鬼主播炭序,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼苍日!你這毒婦竟也來了惭聂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤相恃,失蹤者是張志新(化名)和其女友劉穎辜纲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡耕腾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年屋摇,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幽邓。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡炮温,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牵舵,到底是詐尸還是另有隱情柒啤,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布畸颅,位于F島的核電站担巩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏没炒。R本人自食惡果不足惜涛癌,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望送火。 院中可真熱鬧拳话,春花似錦、人聲如沸种吸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坚俗。三九已至镜盯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間猖败,已是汗流浹背速缆。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恩闻,地道東北人艺糜。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像判呕,于是被迫代替她去往敵國和親倦踢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容