小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

1-50

 千杯不醉004 2011-03-20

1.    面向?qū)ο蟮某绦蛟O(shè)計思想是什么?

答:把數(shù)據(jù)結(jié)構(gòu)和對數(shù)據(jù)結(jié)構(gòu)進行操作的方法封裝形成一個個的對象。

 

2.    什么是類?

答:把一些具有共性的對象歸類后形成一個集合,也就是所謂的類。

 

3.    對象都具有的兩方面特征是什么?分別是什么含義?

答:對象都具有的特征是:靜態(tài)特征和動態(tài)特征。

靜態(tài)特征是指能描述對象的一些屬性(成員變量),動態(tài)特征是指對象表現(xiàn)出來的行為(成員函數(shù))

 

4.    在頭文件中進行類的聲明,在對應(yīng)的實現(xiàn)文件中進行類的定義有什么意義?

答:這樣可以提高編譯效率,因為分開的話只需要編譯一次生成對應(yīng)的.obj文件后,再次應(yīng)用該類的地方,這個類就不會被再次編譯,從而大大的提高了編譯效率。

 

5.    在類的內(nèi)部定義成員函數(shù)的函數(shù)體,這種函數(shù)會具備那種屬性?

答:這種函數(shù)會自動為內(nèi)聯(lián)函數(shù),這種函數(shù)在函數(shù)調(diào)用的地方在編譯階段都會進行代碼替換。

 

6.    成員函數(shù)通過什么來區(qū)分不同對象的成員數(shù)據(jù)?為什么它能夠區(qū)分?

答:通過this指針指向?qū)ο蟮氖椎刂穪韰^(qū)分的。

 

7.    C++編譯器自動為類產(chǎn)生的四個缺省函數(shù)是什么?

答:默認構(gòu)造函數(shù),拷貝構(gòu)造函數(shù),析構(gòu)函數(shù),賦值函數(shù)。

 

8.    拷貝構(gòu)造函數(shù)在哪幾種情況下會被調(diào)用?

答:

1.當(dāng)類的一個對象去初始化該類的另一個對象時;

2.如果函數(shù)的形參是類的對象,調(diào)用函數(shù)進行形參和實參結(jié)合時;

3.如果函數(shù)的返回值是類對象,函數(shù)調(diào)用完成返回時。

 

9.    構(gòu)造函數(shù)與普通函數(shù)相比在形式上有什么不同?(構(gòu)造函數(shù)的作用,它的聲明形式來分析)

答:構(gòu)造函數(shù)是類的一種特殊成員函數(shù),一般情況下,它是專門用來初始化對象成員變量的。

構(gòu)造函數(shù)的名字必須與類名相同,它不具有任何類型,不返回任何值。

 

10.  什么時候必須重寫拷貝構(gòu)造函數(shù)?

答:當(dāng)構(gòu)造函數(shù)涉及到動態(tài)存儲分配空間時,要自己寫拷貝構(gòu)造函數(shù),并且要深拷貝。

 

11.  構(gòu)造函數(shù)的調(diào)用順序是什么?

答:1.先調(diào)用基類構(gòu)造函數(shù)

    2.按聲明順序初始化數(shù)據(jù)成員

3.最后調(diào)用自己的構(gòu)造函數(shù)。

 

12.  哪幾種情況必須用到初始化成員列表?

答:類的成員是常量成員初始化;

類的成員是對象成員初始化,而該對象沒有無參構(gòu)造函數(shù)。

類的成員為引用時。

 

13.  什么是常對象?

答:常對象是指在任何場合都不能對其成員的值進行修改的對象。

 

14.  靜態(tài)函數(shù)存在的意義?

答:靜態(tài)私有成員在類外不能被訪問,可通過類的靜態(tài)成員函數(shù)來訪問;

當(dāng)類的構(gòu)造函數(shù)是私有的時,不像普通類那樣實例化自己,只能通過靜態(tài)成員函數(shù)來調(diào)用構(gòu)造函數(shù)。

 

15.  在類外有什么辦法可以訪問類的非公有成員?

答:友元,繼承,公有成員函數(shù)。

 

16.  什么叫抽象類?

答:不用來定義對象而只作為一種基本類型用作繼承的類。

 

17.  運算符重載的意義?

答:為了對用戶自定義數(shù)據(jù)類型的數(shù)據(jù)的操作與內(nèi)定義的數(shù)據(jù)類型的數(shù)據(jù)的操作形式一致。

 

18.  不允許重載的5個運算符是哪些?

答:

1.    .*(成員指針訪問運算符號)

2.    ::域運算符

3.    Sizeof 長度運算符號

4.    ?:條件運算符號

5.  .(成員訪問符)

 

19.  運算符重載的三種方式?

答:普通函數(shù),友元函數(shù),類成員函數(shù)。

 

20.  流運算符為什么不能通過類的成員函數(shù)重載?一般怎么解決?

答:因為通過類的成員函數(shù)重載必須是運算符的第一個是自己,而對流運算的重載要求第一個參數(shù)是流對象。所以一般通過友元來解決。

 

21.  賦值運算符和拷貝構(gòu)造函數(shù)的區(qū)別與聯(lián)系?

答:相同點:都是將一個對象copy到另一個中去。

不同點:拷貝構(gòu)造函數(shù)涉及到要新建立一個對象。

 

22.  在哪種情況下要調(diào)用該類的析構(gòu)函數(shù)?

答:對象生命周期結(jié)束時。

 

23.  對象間是怎樣實現(xiàn)數(shù)據(jù)的共享的?

答:通過類的靜態(tài)成員變量來實現(xiàn)對象間的數(shù)據(jù)共享。靜態(tài)成員變量占有自己獨立的空間不為某個對象所私有。

 

24.  友元關(guān)系有什么特性?

答:單向的,非傳遞的,不能繼承的。

 

25.  對對象成員進行初始化的次序是什么?

答:它的次序完全不受它們在初始化表中次序的影響,只有成員對象在類中聲明的次序來決定的。

 

26.  類和對象之間的關(guān)系是什么?

答:類是對象的抽象,對象是類的實例。

 

27.  對類的成員的訪問屬性有什么?

答:publicprotected,private

 

28const char *pchar *  const p; 的區(qū)別

答:

如果const位于星號的左側(cè),則const就是用來修飾指針?biāo)赶虻淖兞?/strong>,即指針指向為常量;

如果const位于星號的右側(cè)const就是修飾指針本身,即指針本身是常量。

 

29.  是不是一個父類寫了一個virtual 函數(shù),如果子類覆蓋它的函數(shù)不加virtual ,也能實現(xiàn)多態(tài)?

答:

virtual修飾符會被隱形繼承的。

virtual可加可不加,子類覆蓋它的函數(shù)不加virtual ,也能實現(xiàn)多態(tài)。

 

30.  函數(shù)重載是什么意思?它與虛函數(shù)的概念有什么區(qū)別?

答:函數(shù)重載是一個同名函數(shù)完成不同的功能,編譯系統(tǒng)在編譯階段通過函數(shù)參數(shù)個數(shù)、參數(shù)類型不同,函數(shù)的返回值來區(qū)分該調(diào)用哪一個函數(shù),即實現(xiàn)的是靜態(tài)的多態(tài)性。但是記?。翰荒軆H僅通過函數(shù)返回值不同來實現(xiàn)函數(shù)重載。而虛函數(shù)實現(xiàn)的是在基類中通過使用關(guān)鍵字virtual來申明一個函數(shù)為虛函數(shù),含義就是該函數(shù)的功能可能在將來的派生類中定義或者在基類的基礎(chǔ)之上進行擴展,系統(tǒng)只能在運行階段才能動態(tài)決定該調(diào)用哪一個函數(shù),所以實現(xiàn)的是動態(tài)的多態(tài)性。它體現(xiàn)的是一個縱向的概念,也即在基類和派生類間實現(xiàn)。

 

31.  構(gòu)造函數(shù)和析構(gòu)函數(shù)是否可以被重載,為什么?

答:構(gòu)造函數(shù)可以被重載,析構(gòu)函數(shù)不可以被重載。因為構(gòu)造函數(shù)可以有多個且可以帶參數(shù),而析構(gòu)函數(shù)只能有一個,且不能帶參數(shù)。

 

32.  如何定義和實現(xiàn)一個類的成員函數(shù)為回調(diào)函數(shù)?

答:

所謂的回調(diào)函數(shù),就是預(yù)先在系統(tǒng)的對函數(shù)進行注冊,讓系統(tǒng)知道這個函數(shù)的存在,以后,當(dāng)某個事件發(fā)生時,再調(diào)用這個函數(shù)對事件進行響應(yīng)。

定義一個類的成員函數(shù)時在該函數(shù)前加CALLBACK即將其定義為回調(diào)函數(shù),函數(shù)的實現(xiàn)和普通成員函數(shù)沒有區(qū)別

 

33.  虛函數(shù)是怎么實現(xiàn)的?

答:簡單說來使用了虛函數(shù)表.

 

34.  抽象類不會產(chǎn)生實例,所以不需要有構(gòu)造函數(shù)。

 

35.  從一個模板類可以派生新的模板類,也可以派生非模板類。

 

36.  main 函數(shù)執(zhí)行以前,還會執(zhí)行什么代碼?

答案:全局對象的構(gòu)造函數(shù)會在main 函數(shù)之前執(zhí)行。

 

37.  當(dāng)一個類A 中沒有生命任何成員變量與成員函數(shù),這時sizeof(A)的值是多少,如果不是零,請解釋一下編譯器為什么沒有讓它為零。(Autodesk

答案:肯定不是零。舉個反例,如果是零的話,聲明一個class A[10]對象數(shù)組,而每一個對象占用的空間是零,這時就沒辦法區(qū)分A[0],A[1]…了。

 

38.  delete delete []區(qū)別:

答:delete只會調(diào)用一次析構(gòu)函數(shù),而delete[]會調(diào)用每一個成員的析構(gòu)函數(shù)。

 

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

答:會調(diào)用。析構(gòu)函數(shù)調(diào)用的次序是先派生類的析構(gòu)后基類的析構(gòu),也就是說在基類的的析構(gòu)調(diào)用的時候,派生類的信息已經(jīng)全部銷毀了

 

40.  繼承的優(yōu)缺點。

1、類繼承是在編譯時刻靜態(tài)定義的,且可直接使用,

2、類繼承可以較方便地改變父類的實現(xiàn)。

缺點:

1、因為繼承在編譯時刻就定義了,所以無法在運行時刻改變從父類繼承的實現(xiàn)

2、父類通常至少定義了子類的部分行為,父類的任何改變都可能影響子類的行為

3、如果繼承下來的實現(xiàn)不適合解決新的問題,則父類必須重寫或被其他更適合的類替換。這種依賴關(guān)系限制了靈活性并最終限制了復(fù)用性。

 

41.  解釋堆和棧的區(qū)別。

答:棧區(qū)(stack由編譯器自動分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。

堆(heap)一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時可能由OS回收 。

 

42.  一個類的構(gòu)造函數(shù)和析構(gòu)函數(shù)什么時候被調(diào)用,是否需要手工調(diào)用?

答:構(gòu)造函數(shù)在創(chuàng)建類對象的時候被自動調(diào)用,析構(gòu)函數(shù)在類對象生命期結(jié)束時,由系統(tǒng)自動調(diào)用。

 

43.  何時需要預(yù)編譯:

答:總是使用不經(jīng)常改動的大型代碼體。

程序由多個模塊組成,所有模塊都使用一組標(biāo)準(zhǔn)的包含文件和相同的編譯選項。在這種情況下,可以將所有包含文件預(yù)編譯為一個預(yù)編譯頭。

 

44.  多態(tài)的作用?

答:主要是兩個:

1. 隱藏實現(xiàn)細節(jié),使得代碼能夠模塊化;擴展代碼模塊,實現(xiàn)代碼重用;

2. 接口重用:為了類在繼承和派生的時候,保證使用家族中任一類的實例的某一屬性時的正確調(diào)用

 

45.  虛擬函數(shù)與普通成員函數(shù)的區(qū)別?內(nèi)聯(lián)函數(shù)和構(gòu)造函數(shù)能否為虛擬函數(shù)?

答案:區(qū)別:虛擬函數(shù)有virtual關(guān)鍵字,有虛擬指針和虛函數(shù)表,虛擬指針就是虛擬函數(shù)的接口,而普通成員函數(shù)沒有。內(nèi)聯(lián)函數(shù)和構(gòu)造函數(shù)不能為虛擬函數(shù)。

 

46.  構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序? 析構(gòu)函數(shù)為什么要虛擬?

答案:構(gòu)造函數(shù)的調(diào)用順序:基類構(gòu)造函數(shù)對象成員構(gòu)造函數(shù)派生類構(gòu)造函數(shù);析構(gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)相反。析構(gòu)函數(shù)虛擬是為了防止析構(gòu)不徹底,造成內(nèi)存的泄漏。

 

47. C++中類型為private的成員變量可以由哪些函數(shù)訪問?

答:只可以由本類中的成員函數(shù)和友元函數(shù)訪問

 

48.  請說出類中private,protect,public三種訪問限制類型的區(qū)別

答:private是私有類型,只有本類中的成員函數(shù)訪問;protect是保護型的,本類和繼承類可以訪問;public是公有類型,任何類都可以訪問.

 

49.  類中成員變量怎么進行初始化?

答:可以通過構(gòu)造函數(shù)的初始化列表或構(gòu)造函數(shù)的函數(shù)體實現(xiàn)。

 

50.  在什么時候需要使用常引用? 

答:如果既要利用引用提高程序的效率,又要保護傳遞給函數(shù)的數(shù)據(jù)不在函數(shù)中被改變,就應(yīng)使用常引用。

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多