文思海輝 2022 技術(shù)崗面試題(求職面試回答資料)_第1頁
文思海輝 2022 技術(shù)崗面試題(求職面試回答資料)_第2頁
文思海輝 2022 技術(shù)崗面試題(求職面試回答資料)_第3頁
文思海輝 2022 技術(shù)崗面試題(求職面試回答資料)_第4頁
文思海輝 2022 技術(shù)崗面試題(求職面試回答資料)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 文思海輝 2022 技術(shù)崗面試題第1題: 在C+程序中調(diào)用被C編譯器編譯后的函數(shù),為什么要加extern “C” 函數(shù)經(jīng)過編譯系統(tǒng)的翻譯成匯編,函數(shù)名對應(yīng)著匯編標(biāo)號。 由于C編譯函數(shù)名與得到的匯編基本一樣,如:fun()=_fun, main=_main但是C+中函數(shù)名與得到的匯編有比較大的差別。如:由于函數(shù)重載,函數(shù)名一樣,但匯編肯定不能一樣。為了區(qū)分,編譯器會(huì)把函數(shù)名和參數(shù)類型合在一起作為匯編,這樣就解決了重載問題。詳細(xì)如何把函數(shù)名和參數(shù)類型合在一起,要看編譯器的關(guān)心說明白。這樣一來,假如C+調(diào)用C,如fun(),則調(diào)用名就不是C的翻譯結(jié)果_fun,而是帶有參數(shù)信息的一個(gè)名字,因此就不能

2、調(diào)用到fun(),為了解決這個(gè)問題,加上extern C表示該函數(shù)的調(diào)用規(guī)章是C的規(guī)章,則調(diào)用時(shí)就不使用C+規(guī)章的帶有參數(shù)信息的名字,而是_fun,從而達(dá)到調(diào)用C函數(shù)的目的。 第2題: 關(guān)聯(lián)、聚合以及組合的區(qū)分 關(guān)聯(lián):指的是模型元素之間的一種語義聯(lián)系,是類之間的一種很弱的聯(lián)系。關(guān)聯(lián)可以有方向,可以是單向關(guān)聯(lián),也可以是雙向關(guān)聯(lián)??梢越o關(guān)聯(lián)加上關(guān)聯(lián)名來描述關(guān)聯(lián)的作用。關(guān)聯(lián)兩端的類也可以以某種角色參加關(guān)聯(lián),角色可以具有多重性,表示可以有多少個(gè)對象參加關(guān)聯(lián)??梢酝ㄟ^關(guān)聯(lián)類進(jìn)一步描述關(guān)聯(lián)的屬性、操作以及其他信息。關(guān)聯(lián)類通過一條虛線與關(guān)聯(lián)連接。對于關(guān)聯(lián)可以加上一些約束,以加強(qiáng)關(guān)聯(lián)的含義。 關(guān)聯(lián)在C+中呈現(xiàn)

3、為:class A.class B .A:Function1(B b) /或A:Function1(B b) /或A:Function1(B *b)即一個(gè)類作為另一個(gè)類方法的參數(shù)。聚合:指的是整體與部分的關(guān)系。通常在定義一個(gè)整體類后,再去分析這個(gè)整體類的組成結(jié)構(gòu)。從而找出一些組成類,該整體類和組成類之間就形成了聚合關(guān)系。例如一個(gè)航母編隊(duì)包括??漳概?、驅(qū)護(hù)艦艇、艦載飛機(jī)及核動(dòng)力攻擊潛艇等。需求描述中“包含”、“組成”、“分為叢糠?”等詞常意味著聚合關(guān)系。組合:也表示類之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對象不存在,部分對象也將不存在。部分對象與整體對象之間具有

4、共生死的關(guān)系。聚合和組合的區(qū)分在于:聚合關(guān)系是“has-a”關(guān)系,組合關(guān)系是“contains-a”關(guān)系;聚合關(guān)系表示整體與部分的關(guān)系比較弱,而組合比較強(qiáng);聚合關(guān)系中代表部分事物的對象與代表聚合事物的對象的生存期無關(guān),一旦刪除了聚合對象不肯定就刪除了代表部分事物的對象。組合中一旦刪除了組合對象,同時(shí)也就刪除了代表部分事物的對象。我們用淺顯的例子來說明聚合和組合的區(qū)分?!皣萍彝觥?,國滅了,家自然也沒有了,“國”和“家”明顯也是組合關(guān)系。而相反的,計(jì)算機(jī)和它的外設(shè)之間就是聚合關(guān)系,由于它們之間的關(guān)系相對松散,計(jì)算機(jī)沒了,外設(shè)還可以*存在,還可以接在別的計(jì)算機(jī)上。在聚合關(guān)系中,部分可以*于聚合而存

5、在,部分的全部權(quán)也可以由幾個(gè)聚合來共享,比如打印機(jī)就可以在辦公室內(nèi)被廣闊同事共用。在C+語言中,從實(shí)現(xiàn)的角度講,聚合可以表示為:class A .class B A* a; 即類B包含類A的指針;而組合可表示為:class A.class B A a; .即類B包含類A的對象。關(guān)聯(lián)和聚合的區(qū)分主要在語義上,關(guān)聯(lián)的兩個(gè)對象之間一般是公平的,例如你是我的朋友,聚合則一般不是公平的,例如一個(gè)公司包含了許多員工,其實(shí)現(xiàn)上是差不多的。聚合和組合的區(qū)分則在語義和實(shí)現(xiàn)上都有差別,組合的兩個(gè)對象之間其生命期有很大的關(guān)聯(lián),被組合的對象是在組合對象創(chuàng)建的同時(shí)或者創(chuàng)建之后創(chuàng)建,在組合對象銷毀之前銷毀。一般來說被組合

6、對象不能脫離組合對象*存在,而且也只能屬于一個(gè)組合對象,例如一個(gè)文檔的版本,必需依靠于文檔的存在,也只能屬于一個(gè)文檔。聚合則不一樣,被聚合的對象可以屬于多個(gè)聚合對象,例如一個(gè)員工可能可以屬于多個(gè)公司。 第3題: 面對對象的三個(gè)特征,并簡述之。 第4題: 什么時(shí)候使用“常引用” 假如既要利用引用提高程序的效率,又要愛護(hù)傳遞給函數(shù)的數(shù)據(jù)不在函數(shù)中被轉(zhuǎn)變,就應(yīng)使用常引用。 第5題: static有什么用途? 限制變量的作用域; 設(shè)置變量的存儲(chǔ)域; 第6題: 改錯(cuò)題 Void GetMemory(char *buf,int size) if(buf != NULL ) free( buf ); buf

7、 = (char *) malloc ( size ); Int main(int argc, char *argv ) char * buf; GetMemory( buf , 10); printf(“%s”,buf); free(buf); if(buf != NULL) Printf(“%s”,buf); return 1; 第7題: 已知string類定義如下,寫出類的成員函數(shù)實(shí)現(xiàn)。 Class StringPublic: String(const char *str = NULL); String ( const String another ); String(); String operater = (const

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論