版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面試中概念性問(wèn)題總1、newdeletemalloc的區(qū)別與聯(lián)系?都是在堆(heap)malloc函數(shù)需要指定內(nèi)存分配的字節(jié)數(shù)并且不能初始化對(duì)象,new會(huì)自動(dòng)調(diào)用對(duì)象的構(gòu)造函數(shù)。delete會(huì)調(diào)用對(duì)象的析構(gòu)函數(shù),而不會(huì)調(diào)用對(duì)象的析構(gòu)函數(shù)。①malloc與 是C++/C語(yǔ)言的標(biāo)準(zhǔn)庫(kù)函數(shù),new/delete是C++的運(yùn)算符。它們都用于delete不僅會(huì)釋放空間,在釋放前會(huì)調(diào)用析構(gòu)函數(shù),new對(duì)應(yīng),new調(diào)用構(gòu)造函數(shù),只會(huì)釋放內(nèi)存。③對(duì)于非內(nèi)部數(shù)據(jù)類型的對(duì)象而言,光用maloc/ 函數(shù)和析構(gòu)函數(shù)的任務(wù)強(qiáng)加于malloc/ 。因此C++語(yǔ)言需要一個(gè)能完成動(dòng)態(tài)內(nèi)存分配和初始化工作的運(yùn)算符new,以及一個(gè)能完成清理與釋放內(nèi)存工作的運(yùn)算符delete。注意new/delete不是庫(kù)函數(shù)。④C++程序經(jīng)常要調(diào)用C函數(shù),其實(shí)new/delete內(nèi)部實(shí)現(xiàn)也調(diào)用了 而C程序只能用 ⑤new是強(qiáng)制類型的,不需要考慮類型,而malloc不是,它返回的指針是void*型,必⑥new可以調(diào)用構(gòu)造函數(shù)在的時(shí)候初始化,malloc只是分配空間,需要在其他地方malloc需要指定分配空間大小,new是自動(dòng)計(jì)算的。new/deletenew/delete在類中被重載⑧和delete可以釋放NULL指針Stu*stu Stu采用malloc初始化,你將不會(huì)調(diào)用Stu的構(gòu)造方法,而只是單純的分配空間。而且(struct)Stu*stunewStuStu的構(gòu)造方法來(lái)初始化對(duì)象,也就是說(shuō)你既要分(class)deletedelete[]delete只會(huì)調(diào)用一次析構(gòu)函數(shù),而delete[]會(huì)調(diào)用每一個(gè)成員的析構(gòu)函數(shù)。當(dāng)deletedeletenew配套,delete[]new[]配套。提醒:關(guān)于new、delete、malloc、的區(qū)別,大家盡量多的幾點(diǎn),面試的2C++classstruct的區(qū)別C++中(C++中。classstructclassprivate繼承處理,structpublic繼承處②成員的默認(rèn)權(quán)限:class的成員默認(rèn)是private權(quán)限,struct默認(rèn)是public權(quán)限C++CstructC++struct可以定義方法,C3static全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什么區(qū)別?static函數(shù)與普通函數(shù)有什么區(qū)別?(外部變量)static就構(gòu)成了靜態(tài)的全局變量。全局變量本靜態(tài)全局②把局部變量改變?yōu)殪o態(tài)變量后是改變了它的方式即改變了它的生存期static函數(shù)與普通函數(shù)作用域不同。僅在本文件。只在當(dāng)前源文件中使用的函數(shù)應(yīng)該說(shuō)(文件級(jí)的)②設(shè)置變量的域(全局?jǐn)?shù)據(jù)區(qū))把局部變量改變?yōu)殪o態(tài)變量后是改變了它的方式即改變了它的生存期。static局部把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域,限制了它的使用范圍。static全局變量只初始化一次防止在其他文件單元中被普通全局變量在其他文件中也可用,需要用extern。4、局部變量能否和全局變量重名能,局部會(huì)全局。要用全局變量,需要使用"::"5、如何一個(gè)已經(jīng)定義過(guò)的全局變量可以用頭文件的方式,也可以用extern關(guān)鍵字,如果用頭文件方式來(lái)某個(gè)在頭文件中的全局變量,假定你將那個(gè)變量寫(xiě)錯(cuò)了,那么在編譯期間會(huì)報(bào)錯(cuò);如果你用extern方式時(shí),假定你犯了同樣的錯(cuò)誤,那么在編譯期間不會(huì)報(bào)錯(cuò),而在連接6、全局變量可不可以定義在可被多個(gè).C文件包含的頭文件中?為什么可以,在不同的C文件中以static形式來(lái)同名全局變量??梢栽诓煌腃文件中聲7、關(guān)于const的考constinta;intconsta;constint*a;int*constintconst*a前兩個(gè)的作用是一樣,aa是一個(gè)指向常整型數(shù)的指針(即,整型數(shù)是不可修改的,但指針可以a是一個(gè)指向整型數(shù)的常指針(即,指針指向的整型數(shù)是可以修改的,但指針是a是一個(gè)指向常整型數(shù)的常指針(也就是說(shuō),指針指向的整型數(shù)是不可8、const與#define相比有何優(yōu)constconst修飾的數(shù)據(jù)const9、幾種內(nèi)存分配方式以及它們的區(qū)①?gòu)撵o態(tài)區(qū)域分配。內(nèi)存在程序編譯的時(shí)候就已經(jīng)分配好,這塊內(nèi)存在程序的整個(gè)運(yùn)行期間都存在。例如全局變量,static變量。②在棧上創(chuàng)建。在執(zhí)行函數(shù)時(shí),函數(shù)內(nèi)局部變量的單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時(shí)這些單元自動(dòng)被釋放。棧內(nèi)存分配運(yùn)算內(nèi)置于處理器的指令mallocnew申請(qǐng)任意多少的內(nèi)存,程序員自己負(fù)責(zé)在何時(shí)用或delete釋放內(nèi)存。動(dòng)態(tài)內(nèi)存的生10、main函數(shù)執(zhí)行以前還會(huì)執(zhí)行什么代碼main11、C++是不是類型安全的語(yǔ)言不是,兩個(gè)不同類型的指針之間可以強(qiáng)制轉(zhuǎn)換(reinterpretcast)。C#12、結(jié)構(gòu)體(struct)與聯(lián)合(union)的區(qū)別①結(jié)構(gòu)和聯(lián)合都是由多個(gè)不同的數(shù)據(jù)類型成員組成,但在任何同一時(shí)刻,聯(lián)合中只存放了一個(gè)被選中的成員(所有成員共用一塊地址空間)而結(jié)構(gòu)的所有成員都②對(duì)于聯(lián)合的不同成員賦值,將會(huì)對(duì)其它成員重寫(xiě),原來(lái)成員的值就不存在了,而(sizeof結(jié)構(gòu)和聯(lián)合的區(qū)別①必須被初始化,指針不必②初始化以后不能被改變,指針可以改變所指的對(duì)象③不存在指向空值的,但是存在指向空值的指針。(盡量整理成自己的語(yǔ)言,面試的時(shí)候可以做到有條理的回答14、什么是,和使用時(shí)需要注意哪些事項(xiàng)①一個(gè)時(shí)一定要對(duì)它初始化②一個(gè)不能為兩個(gè)變量的別名③不能建立數(shù)組,可以建立數(shù)組的⑤不能返回函數(shù)內(nèi)部new分配的內(nèi)存的15、實(shí)現(xiàn)多態(tài)的方法①一個(gè)基類的可以指向它的派生類實(shí)16、面向?qū)ο蟮娜齻€(gè)基本特征,并簡(jiǎn)單敘述之①封裝:將客觀事物抽象成類,每個(gè)類對(duì)自身的數(shù)據(jù)和方法實(shí)行控制(private,接口繼承(僅使用屬性和方法,實(shí)現(xiàn)滯后到子類實(shí)現(xiàn)③多態(tài):是將父對(duì)象設(shè)置成為和一個(gè)或的他的子對(duì)象相等的技術(shù),賦值之后,17、重載(overload)和重寫(xiě)(overried,有的書(shū)也叫做“覆蓋”)的區(qū)別(或許參數(shù)個(gè)數(shù)不①重載:編譯器根據(jù)函數(shù)不同的參數(shù)表,對(duì)同名函數(shù)的名稱做修飾,然后這些同名(早綁定18態(tài)的作用?②接口重用:為了類在繼承和派生的時(shí)候,保證使用中任一類的實(shí)例的某一屬19、有哪幾種情況只能用初始化列表而不能使用賦值當(dāng)類中含有const成員變量和成員變量時(shí),基類的構(gòu)造函數(shù)都需要初始化表20、類成員函數(shù)的重載、覆蓋和隱藏的區(qū)別irtualvirtual關(guān)鍵字,基類的函數(shù)將被隱藏(注意別與重載virtual關(guān)鍵字。此時(shí),基類的函數(shù)被隱藏(注意別與覆蓋21、堆棧溢出一般是由什么原因?qū)е碌蘑贈(zèng)]有回收資22、hifndef/define/endif的作用?23、C++中的空類,默認(rèn)產(chǎn)生的類成員函數(shù){ //Empty(const // //Empty&operator=(constEmpty&); //賦值運(yùn)算符Empty*operator&(); //取值運(yùn)算符constEmpty*operator&()const; //取值運(yùn)算符const24、.進(jìn)程間通信的方式有Socket25、進(jìn)程死鎖的原因26、死鎖的四個(gè)必要條互斥,請(qǐng)求保持,不可,環(huán)路27、類的靜態(tài)成員和非靜態(tài)成員有什么區(qū)別28、什么是淺拷貝?什么是深拷貝一般來(lái)說(shuō),淺拷貝就是那個(gè)對(duì)象的指針。深拷貝就是了那個(gè)對(duì)象30、C和C++有什么不同;c++的,提供了類。但是,c++c容易C++31、C++virtualinline的含義分別是什么在基類成員函數(shù)的前加上virtual關(guān)鍵字,意味著將該成員函數(shù)為虛函數(shù)。inline與函數(shù)的定義體放在一起,使該函數(shù)稱為內(nèi)聯(lián)。inline是一種用于實(shí)現(xiàn)的關(guān)鍵字,32、數(shù)組和鏈表的區(qū)別數(shù)組的數(shù)據(jù)是順序的,大小固定鏈表的數(shù)據(jù)可以隨機(jī),大小可以動(dòng)態(tài)的改變33、C++容器的分類及各自的特性容器內(nèi)的元素類型必須至少滿足2個(gè)條件:可和可賦值vector是連續(xù)的,能支持快速隨機(jī),list不需要連續(xù),能在中間快速插入和刪除,deque是雙端隊(duì)列,具有后進(jìn)先出的特性。所有的迭代器范圍都是左閉合區(qū)間,[begin,end)包括beginendakqueue和有優(yōu)先級(jí)管理的prioity_queueack可以建立在vetolidequequeue要能提供pu_front操作不能建立在vetor上prioity_queue要提供隨機(jī)能力只能建立在vetordequemap、set、multimapmultisetmap鍵值對(duì),set單個(gè)鍵,multimap和multiset支持同一個(gè)鍵多次出現(xiàn)set與mapset僅有key_typevalue_type也就是key_type;截然不同:用下標(biāo)不存在的元素將導(dǎo)致在map容器中添加一個(gè)新元素。34、windows應(yīng)用程序的類型控制臺(tái)程序、窗口程序、庫(kù)程序(靜態(tài)/動(dòng)態(tài)35、窗口程序的創(chuàng)建過(guò)a.定義WinMain函數(shù)b.定義窗口處理函數(shù)c.窗口類 d.創(chuàng)建窗口 36、win32程序的執(zhí)行機(jī)Win32窗口程序是采用驅(qū)動(dòng)方式執(zhí)行,也就是消息機(jī)制(程序的執(zhí)行機(jī)制分為過(guò)程驅(qū)動(dòng)和驅(qū)動(dòng)37、列舉win32中與消息相關(guān)的幾個(gè)函數(shù)GetMessage-TranslateMessage-Dispatessage-派發(fā)消息。將消息派發(fā)到該消息所屬窗口的窗口處理函數(shù)上38、列舉幾個(gè)常用的窗口消息 MAND、WM_CREATE、WM_SIZE、WM_QUIT39、Windows中消息可以分為幾類系統(tǒng)消息——應(yīng)用程序消息——系統(tǒng)消息——在系統(tǒng)并生成相應(yīng)消息,然后可以在各個(gè)程序中使用這個(gè)消息40、消息隊(duì)列的類型)程序消息隊(duì)列——屬于每一個(gè)應(yīng)用程(線程的消息隊(duì)列由應(yīng)用程(線程。)41、Windows程序的是哪里?寫(xiě)出Windows消息機(jī)制的流程。WinMain()函數(shù)。WindowsGetMessage函數(shù)從消息隊(duì)列中取出一條一條的消息,WNDCLASSlpfnWndProc成員保存的窗口過(guò)程函數(shù)的指針調(diào)42、SendMessage()與PostMessage()之間的區(qū)別是什么SendMessage()則剛好相反,應(yīng)用程序處理完此43assert的用法斷言assert是僅在debug版本起作用的宏,用于檢查“不應(yīng)該“發(fā)生的情況。程序員可以把a(bǔ)ssert看成一個(gè)在任何
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年碎石運(yùn)輸企業(yè)財(cái)務(wù)管理合同模板3篇
- 2024貨車(chē)租賃合同范文
- 2024年版汽車(chē)零部件生產(chǎn)與供應(yīng)合同
- 2024建筑勞務(wù)給排水分包合同范本
- 2024建筑工地鋼筋原材料采購(gòu)與驗(yàn)收合同
- 2025年度新型建筑材料銷售合作合同范本3篇
- 2024食堂食材采購(gòu)與勞務(wù)承包合作協(xié)議3篇
- 2024飼料行業(yè)市場(chǎng)調(diào)研與數(shù)據(jù)分析服務(wù)合同范本3篇
- 2024校服采購(gòu)合同模板
- 2025年度電網(wǎng)接入與轉(zhuǎn)供電服務(wù)合同3篇
- GB/T 39733-2024再生鋼鐵原料
- 第二章 粉體制備
- 《工業(yè)機(jī)器人現(xiàn)場(chǎng)編程》課件-任務(wù)3.涂膠機(jī)器人工作站
- 三對(duì)三籃球賽記錄表
- 數(shù)學(xué)-九宮數(shù)獨(dú)100題(附答案)
- 根管治療--ppt課件
- 鋪種草皮施工方案(推薦文檔)
- 10KV高壓環(huán)網(wǎng)柜(交接)試驗(yàn)
- 綜合單價(jià)的確定
- 張可填充顏色的中國(guó)地圖與世界地圖課件
- 9以內(nèi)除法口算(81題)
評(píng)論
0/150
提交評(píng)論