C++面試題目總結(jié)

1.內(nèi)存的分配方式有幾種?

  1. 從靜態(tài)存儲區(qū)域分配擒滑。內(nèi)存在程序編譯的時候就已經(jīng)分配好橘忱,這塊內(nèi)存在程序的整個運行期間都存在。例如全局變量颖御。
    2 在棧上創(chuàng)建凝颇。在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變量的存儲單元都可以在棧上創(chuàng)建芦岂,函數(shù)執(zhí)行結(jié)束時這些存儲單元自動被釋放垫蛆。棧內(nèi)存分配運算內(nèi)置于處理器的指令集中,效率很高川无,但是分配的內(nèi)存容量有限。
  2. 從堆上分配晾虑,亦稱動態(tài)內(nèi)存分配仅叫。程序在運行的時候用malloc或new申請任意多少的內(nèi)存,程序員自己負責在何時用free或delete釋放內(nèi)存笙隙。動態(tài)內(nèi)存的生存期由我們決定,使用非常靈活婴渡,但問題也最多。

2. new哄尔,delete柠并,malloc,free關系

delete會調(diào)用對象的析構(gòu)函數(shù),和new對應鸣戴;free只會釋放內(nèi)存粘拾,new調(diào)用構(gòu)造函數(shù)缰雇。
malloc與free是C++/C語言的標準庫函數(shù),new/delete是C++的運算符疏之。它們都可用于申請動態(tài)內(nèi)存和釋放內(nèi)存暇咆。對于非內(nèi)部數(shù)據(jù)類型的對象而言丙曙,光用maloc/free無法滿足動態(tài)對象的要求河泳。對象在創(chuàng)建的同時要自動執(zhí)行構(gòu)造函數(shù)年栓,對象在消亡之前要自動執(zhí)行析構(gòu)函數(shù)。由于malloc/free是庫函數(shù)而不是運算符纸兔,不在編譯器控制權(quán)限之內(nèi)否副,不能夠把執(zhí)行構(gòu)造函數(shù)和析構(gòu)函數(shù)的任務強加于malloc/free。因此C++語言需要一個能完成動態(tài)內(nèi)存分配和初始化工作的運算符new洲拇,以及一個能完成清理與釋放內(nèi)存工作的運算符delete曲尸。注意new/delete不是庫函數(shù)。

3.delete與 delete[] 區(qū)別

delete只會調(diào)用一次析構(gòu)函數(shù)纽乱,而delete[]會調(diào)用每一個成員的析構(gòu)函數(shù)昆箕。在More Effective C++中有更為詳細的解釋:“當delete操作符用于數(shù)組時,它為每個數(shù)組元素調(diào)用析構(gòu)函數(shù)鹏倘,然后調(diào)用operator delete來釋放內(nèi)存纤泵。”delete與new配套诲锹,delete []與new []配套
MemTest *mTest1=new MemTest[10];
MemTest *mTest2=new MemTest;
Int *pInt1=new int [10];
Int *pInt2=new int;
delete[]pInt1; //-1-
delete[]pInt2; //-2-
delete[]mTest1; //-3-
delete[]mTest2; //-4-
在-4-處報錯归园。

這就說明:對于內(nèi)建簡單數(shù)據(jù)類型,delete和delete[]功能是相同的庸诱。對于自定義的復雜數(shù)據(jù)類型,delete和delete[]不能互用桥爽。delete[]刪除一個數(shù)組钠四,delete刪除一個指針。簡單來說缀去,用new分配的內(nèi)存用delete刪除;用new[]分配的內(nèi)存用delete[]刪除褥影。delete[]會調(diào)用數(shù)組元素的析構(gòu)函數(shù)凡怎。內(nèi)部數(shù)據(jù)類型沒有析構(gòu)函數(shù)赊抖,所以問題不大。如果你在用delete時沒用括號熏迹,delete就會認為指向的是單個對象注暗,否則墓猎,它就會認為指向的是一個數(shù)組。

4.C++有哪些性質(zhì)(面向?qū)ο筇攸c)

封裝骗卜,繼承和多態(tài)左胞。

5.子類析構(gòu)時要調(diào)用父類的析構(gòu)函數(shù)嗎?

析構(gòu)函數(shù)調(diào)用的次序是先派生類的析構(gòu)后基類的析構(gòu)遍烦,也就是說在基類的的析構(gòu)調(diào)用的時候,派生類的信息已經(jīng)全部銷毀了服猪。定義一個對象時先調(diào)用基類的構(gòu)造函數(shù)、然后調(diào)用派生類的構(gòu)造函數(shù)罢猪;析構(gòu)的時候恰好相反:先調(diào)用派生類的析構(gòu)函數(shù)、然后調(diào)用基類的析構(gòu)函數(shù)膳帕。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晌端,一起剝皮案震驚了整個濱河市恬砂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泻骤,老刑警劉巖狱掂,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鸟顺,居然都是意外死亡,警方通過查閱死者的電腦和手機讯嫂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門欧芽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來葛圃,“玉大人库正,你說我怎么就攤上這事×埽” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵讯柔,是天一觀的道長护昧。 經(jīng)常有香客問我惋耙,道長,這世上最難降的妖魔是什么绽榛? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任推溃,我火速辦了婚禮届腐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘硬萍。我一直安慰自己围详,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嫉拐,像睡著了一般魁兼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盖呼,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天几晤,我揣著相機與錄音植阴,去河邊找鬼圾浅。 笑死憾朴,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的灸拍。 我是一名探鬼主播鸡岗,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼轩性,長吁一口氣:“原來是場噩夢啊……” “哼狠鸳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舒岸,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎个少,沒想到半個月后夜焦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡巷波,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了荤傲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡俊嗽,死狀恐怖铃彰,靈堂內(nèi)的尸體忽然破棺而出豌研,到底是詐尸還是另有隱情妹田,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布鹃共,位于F島的核電站鬼佣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏霜浴。R本人自食惡果不足惜晶衷,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阴孟。 院中可真熱鬧晌纫,春花似錦、人聲如沸永丝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慕嚷。三九已至哥牍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喝检,已是汗流浹背嗅辣。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工损俭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撩炊,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓骆膝,卻偏偏與公主長得像阅签,于是被迫代替她去往敵國和親政钟。 傳聞我的和親對象是個殘疾皇子精算,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

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