<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C/C++面試題集錦(一)

      C/C++面試題集錦(一)

      C/C++面試題集錦(一)

      在類(lèi)的頭文件中進(jìn)行聲明然后在定義文件中實(shí)現(xiàn)有什么意義?
      一方面使類(lèi)的實(shí)現(xiàn)只編譯一次,提高編譯效率;另一方面可以實(shí)現(xiàn)類(lèi)的接口和實(shí)現(xiàn)的分離,利于維護(hù)
      在類(lèi)的聲明內(nèi)部實(shí)現(xiàn)成員函數(shù)的函數(shù)體
      這種成員函數(shù)自動(dòng)成為內(nèi)聯(lián)函數(shù),這種函數(shù)在編譯階段只要是用到的地方都會(huì)進(jìn)行代碼替換
      成員函數(shù)通過(guò)什么來(lái)區(qū)分不同的對(duì)象
      通過(guò)普通成員函數(shù)隱含的this指針來(lái)區(qū)分不同對(duì)象。一個(gè)類(lèi)的不同對(duì)象之間代碼是共享的,只有數(shù)據(jù)是不同的,this指針指向這些不同的數(shù)據(jù)內(nèi)存位置的首地址。
      拷貝構(gòu)造函數(shù)的使用情形
      a.在使用對(duì)象去初始化同類(lèi)的另一個(gè)對(duì)象時(shí) b.函數(shù)調(diào)用時(shí)使用類(lèi)對(duì)象作為形參時(shí) c.函數(shù)返回值返回一個(gè)類(lèi)對(duì)象時(shí)
      什么時(shí)候必須重寫(xiě)拷貝構(gòu)造函數(shù)
      當(dāng)類(lèi)的成員需要對(duì)指針進(jìn)行深拷貝時(shí),需要在用到的構(gòu)造函數(shù)內(nèi)進(jìn)行動(dòng)態(tài)內(nèi)存分配,相應(yīng)的要在析構(gòu)函數(shù)內(nèi)進(jìn)行動(dòng)態(tài)內(nèi)存釋放
      構(gòu)造函數(shù)調(diào)用的順序
      a.調(diào)用基類(lèi)的構(gòu)造函數(shù) b.按聲明中的順序?qū)︻?lèi)的數(shù)據(jù)成員進(jìn)行初始化 c.調(diào)用本類(lèi)自己的構(gòu)造函數(shù)
      什么情況下必須用到初始化成員列表
      a. 類(lèi)的成員具有一經(jīng)初始化便不能修改的特性如常屬性和引用 b. 類(lèi)的成員是另一個(gè)類(lèi),且這個(gè)類(lèi)沒(méi)有默認(rèn)的構(gòu)造函數(shù)(即需要傳參數(shù))
      類(lèi)的靜態(tài)成員函數(shù)存在的意義
      相比普通成員函數(shù)不需要生成對(duì)象、沒(méi)有this指針的開(kāi)銷(xiāo),效率稍高;為無(wú)需實(shí)例化的函數(shù)提供了一種貼切的實(shí)現(xiàn)方式。
      在類(lèi)外有什么辦法訪問(wèn)類(lèi)的非共有成員
      友元、繼承和公有成員函數(shù)
      抽象類(lèi)
      不能用來(lái)建立對(duì)象只能用作繼承的基類(lèi),具體的是成員函數(shù)至少有一個(gè)是純虛函數(shù)(聲明中=0,而不管這個(gè)函數(shù)是否有實(shí)現(xiàn)代碼)
      運(yùn)算符重載的意義
      為自定義的數(shù)據(jù)類(lèi)型提供與語(yǔ)言內(nèi)置的類(lèi)型提供一致的數(shù)據(jù)操作接口
      不允許重載的5個(gè)運(yùn)算符
      .*、::、sizeof、?:、.
      流運(yùn)算符為什么不能通過(guò)成員函數(shù)重載?一般怎么解決
      在類(lèi)內(nèi)對(duì)運(yùn)算符進(jìn)行重載要求運(yùn)算符的第一個(gè)操作數(shù)必須是本類(lèi)的對(duì)象,因?yàn)榱鲗?duì)象屬于標(biāo)準(zhǔn)庫(kù)的類(lèi),無(wú)法實(shí)現(xiàn)在標(biāo)準(zhǔn)庫(kù)中對(duì)各種自定義的類(lèi)的流操作進(jìn)行重載。一般通過(guò)自定義類(lèi)的友元函數(shù)來(lái)實(shí)現(xiàn)類(lèi)流操作符的重載
      賦值運(yùn)算符和拷貝構(gòu)造函數(shù)有什么區(qū)別和聯(lián)系
      他們都是通過(guò)類(lèi)的一個(gè)對(duì)象來(lái)建立起類(lèi)的另一個(gè)對(duì)象,但拷貝構(gòu)造函數(shù)涉及到對(duì)象的構(gòu)造,賦值運(yùn)算符不需要建立對(duì)象
      什么情況下調(diào)用類(lèi)的析夠函數(shù)
      對(duì)象生命周期結(jié)束的時(shí)候,一般是在離對(duì)象最近的右花括號(hào)處
      類(lèi)的對(duì)象之間如何實(shí)現(xiàn)數(shù)據(jù)的共享
      通過(guò)類(lèi)的靜態(tài)成員變量來(lái)實(shí)現(xiàn),靜態(tài)成員變量有自己獨(dú)立的存儲(chǔ)空間,數(shù)據(jù)為整個(gè)類(lèi)的所有成員所共享,都能訪問(wèn)。
      類(lèi)的數(shù)據(jù)成員初始化的順序
      初始化的順序由他們?cè)陬?lèi)的聲明中的順序決定的。
      virtual函數(shù)實(shí)現(xiàn)多態(tài)的時(shí)候子類(lèi)中的覆蓋函數(shù)這個(gè)關(guān)鍵字是否是必須的?
      virtual關(guān)鍵字會(huì)被隱形繼承,即使子類(lèi)中不加這個(gè)關(guān)鍵字也能實(shí)現(xiàn)多態(tài)
      函數(shù)重載與虛函數(shù)在實(shí)現(xiàn)函數(shù)的多態(tài)上有什么區(qū)別
      函數(shù)重載是通過(guò)函數(shù)簽名不同(函數(shù)名、函數(shù)參數(shù)個(gè)數(shù)、函數(shù)參數(shù)的類(lèi)型)在編譯期間實(shí)現(xiàn)的靜態(tài)的多態(tài);虛函數(shù)是通過(guò)類(lèi)之間的繼承關(guān)系和函數(shù)在子類(lèi)中被覆蓋,
      友元關(guān)系的特性
      單向性、非傳遞性、不能繼承的。
      構(gòu)造函數(shù)和析構(gòu)函數(shù)能否重載?
      構(gòu)造函數(shù)可以有多個(gè)且參數(shù)不同,可以重載;析構(gòu)函數(shù)只能有一個(gè)所以不能重載,而且他沒(méi)有參數(shù)。
      虛函數(shù)的實(shí)現(xiàn)
      虛函數(shù)表(虛表指針)???
      main函數(shù)執(zhí)行前還會(huì)執(zhí)行什么代碼
      全局域的對(duì)象的構(gòu)造函數(shù)會(huì)在main函數(shù)執(zhí)行前執(zhí)行
      當(dāng)一個(gè)類(lèi)中沒(méi)有聲明任何變量和函數(shù)時(shí),sizeof 類(lèi)是多少,為什么?
      大小是1,是為了在程序中給不同的對(duì)象分配不同的內(nèi)存地址,來(lái)區(qū)分類(lèi)的不同對(duì)象。
      delete 與 delete[] 的區(qū)別
      delete只調(diào)用一次析構(gòu)函數(shù),后者會(huì)調(diào)用每一個(gè)對(duì)象的析構(gòu)函數(shù)。
      基類(lèi)和派生類(lèi)析構(gòu)和構(gòu)造函數(shù)的調(diào)用順序
      在對(duì)象創(chuàng)建過(guò)程中基類(lèi)的構(gòu)造函數(shù)會(huì)被先調(diào)用,然后是本類(lèi)的構(gòu)造函數(shù);析構(gòu)函數(shù)的調(diào)用過(guò)程相反。在基類(lèi)的構(gòu)造函數(shù)工作的過(guò)程中,本類(lèi)的對(duì)象沒(méi)有被完全建立,本類(lèi)的信息是不完整的,同理,在析構(gòu)過(guò)程中,基類(lèi)的析構(gòu)函數(shù)工作過(guò)程中,本類(lèi)的信息也已經(jīng)被銷(xiāo)毀了。
      繼承的優(yōu)缺點(diǎn)
      是代碼復(fù)用的一種方式,提供一定程度上的靈活性,優(yōu)點(diǎn)也成為了限制。
      類(lèi)的構(gòu)造和析構(gòu)函數(shù)什么時(shí)候被調(diào)用,被誰(shuí)調(diào)用?
      分別在類(lèi)的生命周期開(kāi)始和結(jié)束時(shí)被系統(tǒng)自動(dòng)調(diào)用。有時(shí)也可以由程序員手動(dòng)調(diào)用。
      預(yù)編譯
      多個(gè)模塊,不經(jīng)常改動(dòng)。
      c++中多態(tài)的實(shí)現(xiàn)
      a.靜態(tài)多態(tài),在編譯期間確定(函數(shù)模板和函數(shù)重載,注意函數(shù)缺省參數(shù)),b.動(dòng)態(tài)多態(tài),在運(yùn)行期間確定(虛函數(shù),覆蓋,指針或引用)
      c++中四大特性的作用
      封裝使代碼能夠模塊化,繼承使代碼易于擴(kuò)展,而多態(tài)是為了接口的一致和重用,抽象???(數(shù)據(jù)抽象、算法抽象)類(lèi)的概念,模板的概念
      普通函數(shù)、靜態(tài)函數(shù)、友元函數(shù)為什么不能為虛函數(shù)
      普通函數(shù)會(huì)在編譯時(shí)確定代碼,無(wú)法實(shí)現(xiàn)動(dòng)態(tài)多態(tài);類(lèi)的靜態(tài)成員函數(shù)在基類(lèi)和所有子類(lèi)中只有一份拷貝,友元函數(shù)沒(méi)有繼承的特性,也無(wú)法實(shí)現(xiàn)動(dòng)態(tài)多態(tài),所以沒(méi)必要支持虛函數(shù)
      內(nèi)聯(lián)函數(shù)為什么不能為虛函數(shù)
      內(nèi)聯(lián)函數(shù)是為了在編譯期間將代碼展開(kāi),虛函數(shù)是為了在運(yùn)行時(shí)支持執(zhí)行多個(gè)不同的代碼分支,從概念上就是不兼容的。
      構(gòu)造函數(shù)為什么不能是虛函數(shù)
      a.虛函數(shù)的實(shí)現(xiàn)需要虛表的支持,此時(shí)虛表尚未建立 b.構(gòu)造函數(shù)無(wú)法通過(guò)指針或引用來(lái)調(diào)用,所以不必設(shè)置為虛函數(shù) c.虛函數(shù)的實(shí)現(xiàn)需要通過(guò)指針或引用確定對(duì)象的類(lèi)型,構(gòu)造函數(shù)被調(diào)用時(shí)還沒(méi)有完整的對(duì)象,無(wú)法確定對(duì)象類(lèi)型,所以無(wú)法設(shè)置為虛函數(shù)。
      為什么基類(lèi)的析構(gòu)函數(shù)最好設(shè)置為虛函數(shù)?
      因?yàn)閯?dòng)態(tài)多態(tài)性支持通過(guò)基類(lèi)指針或引用來(lái)使用派生類(lèi)對(duì)象,此時(shí)當(dāng)派生類(lèi)對(duì)象需要析構(gòu)時(shí),只有析構(gòu)函數(shù)是虛函數(shù)時(shí),才能正確的析構(gòu)
      類(lèi)的私有成員可以被哪些函數(shù)訪問(wèn)
      可以被本類(lèi)的成員函數(shù)和友元訪問(wèn)
      類(lèi)的保護(hù)成員可以被那些函數(shù)訪問(wèn)
      可以被本類(lèi)的成員函數(shù)和友元和公有和保護(hù)派生方式派生出來(lái)的類(lèi)訪問(wèn)
      常引用
      既提高程序運(yùn)行的效率又要保護(hù)傳遞給函數(shù)的數(shù)據(jù)不再函數(shù)中被改變
      指針和引用的區(qū)別
      引用必須被初始化,初始化后就不可以改變而指針不必,指針可以指向空值,引用不可以。
      switch后的表達(dá)式不可以為什么類(lèi)型
      可以為整型、字符、布爾、枚舉類(lèi)型;不可以為浮點(diǎn)型數(shù)據(jù)。
      如何引用一個(gè)定義過(guò)的全局變量
      a. 全局變量在頭文件內(nèi),可以直接引用頭文件后使用 b. 如果在其他源文件中定義的全局變量,可以使用extern關(guān)鍵字使用此全局變量。
      頻繁使用的短小函數(shù)在c/c++語(yǔ)言中如何處理
      在c語(yǔ)言中使用宏定義,在c++語(yǔ)言中使用內(nèi)聯(lián)函數(shù)。
      內(nèi)存分配的三種方式
      靜態(tài)存儲(chǔ)區(qū)分配在編譯期間確定、棧上分配、堆上動(dòng)態(tài)分配。
      extern "C"有什么用
      用來(lái)在c++程序程序中聲明特定的程序語(yǔ)句或語(yǔ)句塊按照c語(yǔ)言的函數(shù)命名規(guī)則進(jìn)行編譯。
      使用#define和const定義常量有什么區(qū)別
      #define是C語(yǔ)言預(yù)處理器的語(yǔ)法關(guān)鍵字,在編譯期間只執(zhí)行常量替換;const是C++語(yǔ)言定義常變量的方法,它具有類(lèi)型,有內(nèi)存分配,可以用sizeof測(cè)試出長(zhǎng)度。
      struct和class的區(qū)別
      struct成員默認(rèn)訪控屬性是公有的,而class的默認(rèn)訪控屬性是私有的。
      局部變量和全局變量能否同名?
      可以,局部變量會(huì)屏蔽全局變量;要訪問(wèn)全局變量需要使用::域運(yùn)算符。
      assert宏
      用于調(diào)試程序,以避免程序中出現(xiàn)明顯錯(cuò)誤的或非法的數(shù)據(jù),可以使用 #define NDEBUG 來(lái)在特定版本的程序中禁止使用assert斷言
      windows消息隊(duì)列由哪幾部分組成
      a. 系統(tǒng)消息隊(duì)列,由操作系統(tǒng)負(fù)責(zé)將消息投放到特定的應(yīng)用程序的消息隊(duì)列中 b. 應(yīng)用程序消息循環(huán),每個(gè)應(yīng)用程序都有各自的消息隊(duì)列,在應(yīng)用程序消息循環(huán)中,不斷地從自己的消息隊(duì)列中取出消息并進(jìn)行特定的消息的處理,然后再將消息交由windows操作系統(tǒng)來(lái)調(diào)用相應(yīng)的窗口處理函數(shù) c. 窗口處理函數(shù),除了在消息循環(huán)中已經(jīng)處理的消息外,其他的消息都會(huì)由操作系統(tǒng)調(diào)用相應(yīng)的窗口處理函數(shù)來(lái)處理不同的消息。
      sendmessage 和 postmessage有什么區(qū)別
      sendmessage是直接將消息過(guò)程跳過(guò)消息隊(duì)列和消息循環(huán)直接交由特定的窗口處理函數(shù)進(jìn)行處理,并等待消息處理結(jié)束返回。postmessage是將消息放入應(yīng)用程序消息隊(duì)列中,但是并不等待消息處理結(jié)束而是即刻返回。
      消息映射
      是在mfc類(lèi)中,程序員通過(guò)將系統(tǒng)消息映射到類(lèi)的成員函數(shù)從而實(shí)現(xiàn)mfc類(lèi)對(duì)操作系統(tǒng)消息的各種處理。
      構(gòu)成win32 api的三個(gè)動(dòng)態(tài)鏈接庫(kù)是什么
      kernel32.dll、user32.dll和gdi32.dll
      windows消息分為幾類(lèi),并對(duì)各個(gè)類(lèi)進(jìn)行簡(jiǎn)要的介紹?
      a.窗口消息:與窗口相關(guān)的消息,除 WM_COMMAND b. 命令消息:用于處理用戶請(qǐng)求,以 WM_COMMAND 表示的消息 c. 控件通知消息:統(tǒng)一由 WM_NOTIFY 處理
      在類(lèi)的頭文件中進(jìn)行聲明然后在定義文件中實(shí)現(xiàn)有什么意義?
      一方面使類(lèi)的實(shí)現(xiàn)只編譯一次,提高編譯效率;另一方面可以實(shí)現(xiàn)類(lèi)的接口和實(shí)現(xiàn)的分離,利于維護(hù)
      在類(lèi)的聲明內(nèi)部實(shí)現(xiàn)成員函數(shù)的函數(shù)體
      這種成員函數(shù)自動(dòng)成為內(nèi)聯(lián)函數(shù),這種函數(shù)在編譯階段只要是用到的地方都會(huì)進(jìn)行代碼替換
      成員函數(shù)通過(guò)什么來(lái)區(qū)分不同的對(duì)象
      通過(guò)普通成員函數(shù)隱含的this指針來(lái)區(qū)分不同對(duì)象。一個(gè)類(lèi)的不同對(duì)象之間代碼是共享的,只有數(shù)據(jù)是不同的,this指針指向這些不同的數(shù)據(jù)內(nèi)存位置的首地址。
      拷貝構(gòu)造函數(shù)的使用情形
      a.在使用對(duì)象去初始化同類(lèi)的另一個(gè)對(duì)象時(shí) b.函數(shù)調(diào)用時(shí)使用類(lèi)對(duì)象作為形參時(shí) c.函數(shù)返回值返回一個(gè)類(lèi)對(duì)象時(shí)
      什么時(shí)候必須重寫(xiě)拷貝構(gòu)造函數(shù)
      當(dāng)類(lèi)的成員需要對(duì)指針進(jìn)行深拷貝時(shí),需要在用到的構(gòu)造函數(shù)內(nèi)進(jìn)行動(dòng)態(tài)內(nèi)存分配,相應(yīng)的要在析構(gòu)函數(shù)內(nèi)進(jìn)行動(dòng)態(tài)內(nèi)存釋放
      構(gòu)造函數(shù)調(diào)用的順序
      a.調(diào)用基類(lèi)的構(gòu)造函數(shù) b.按聲明中的順序?qū)︻?lèi)的數(shù)據(jù)成員進(jìn)行初始化 c.調(diào)用本類(lèi)自己的構(gòu)造函數(shù)
      什么情況下必須用到初始化成員列表
      a. 類(lèi)的成員具有一經(jīng)初始化便不能修改的特性如常屬性和引用 b. 類(lèi)的成員是另一個(gè)類(lèi),且這個(gè)類(lèi)沒(méi)有默認(rèn)的構(gòu)造函數(shù)(即需要傳參數(shù))
      類(lèi)的靜態(tài)成員函數(shù)存在的意義
      相比普通成員函數(shù)不需要生成對(duì)象、沒(méi)有this指針的開(kāi)銷(xiāo),效率稍高;為無(wú)需實(shí)例化的函數(shù)提供了一種貼切的實(shí)現(xiàn)方式。
      在類(lèi)外有什么辦法訪問(wèn)類(lèi)的非共有成員
      友元、繼承和公有成員函數(shù)
      抽象類(lèi)
      不能用來(lái)建立對(duì)象只能用作繼承的基類(lèi),具體的是成員函數(shù)至少有一個(gè)是純虛函數(shù)(聲明中=0,而不管這個(gè)函數(shù)是否有實(shí)現(xiàn)代碼)
      運(yùn)算符重載的意義
      為自定義的數(shù)據(jù)類(lèi)型提供與語(yǔ)言內(nèi)置的類(lèi)型提供一致的數(shù)據(jù)操作接口
      不允許重載的5個(gè)運(yùn)算符
      .*、::、sizeof、?:、.
      流運(yùn)算符為什么不能通過(guò)成員函數(shù)重載?一般怎么解決
      在類(lèi)內(nèi)對(duì)運(yùn)算符進(jìn)行重載要求運(yùn)算符的第一個(gè)操作數(shù)必須是本類(lèi)的對(duì)象,因?yàn)榱鲗?duì)象屬于標(biāo)準(zhǔn)庫(kù)的類(lèi),無(wú)法實(shí)現(xiàn)在標(biāo)準(zhǔn)庫(kù)中對(duì)各種自定義的類(lèi)的流操作進(jìn)行重載。一般通過(guò)自定義類(lèi)的友元函數(shù)來(lái)實(shí)現(xiàn)類(lèi)流操作符的重載
      賦值運(yùn)算符和拷貝構(gòu)造函數(shù)有什么區(qū)別和聯(lián)系
      他們都是通過(guò)類(lèi)的一個(gè)對(duì)象來(lái)建立起類(lèi)的另一個(gè)對(duì)象,但拷貝構(gòu)造函數(shù)涉及到對(duì)象的構(gòu)造,賦值運(yùn)算符不需要建立對(duì)象
      什么情況下調(diào)用類(lèi)的析夠函數(shù)
      對(duì)象生命周期結(jié)束的時(shí)候,一般是在離對(duì)象最近的右花括號(hào)處
      類(lèi)的對(duì)象之間如何實(shí)現(xiàn)數(shù)據(jù)的共享
      通過(guò)類(lèi)的靜態(tài)成員變量來(lái)實(shí)現(xiàn),靜態(tài)成員變量有自己獨(dú)立的存儲(chǔ)空間,數(shù)據(jù)為整個(gè)類(lèi)的所有成員所共享,都能訪問(wèn)。
      類(lèi)的數(shù)據(jù)成員初始化的順序
      初始化的順序由他們?cè)陬?lèi)的聲明中的順序決定的。
      virtual函數(shù)實(shí)現(xiàn)多態(tài)的時(shí)候子類(lèi)中的覆蓋函數(shù)這個(gè)關(guān)鍵字是否是必須的?
      virtual關(guān)鍵字會(huì)被隱形繼承,即使子類(lèi)中不加這個(gè)關(guān)鍵字也能實(shí)現(xiàn)多態(tài)
      函數(shù)重載與虛函數(shù)在實(shí)現(xiàn)函數(shù)的多態(tài)上有什么區(qū)別
      函數(shù)重載是通過(guò)函數(shù)簽名不同(函數(shù)名、函數(shù)參數(shù)個(gè)數(shù)、函數(shù)參數(shù)的類(lèi)型)在編譯期間實(shí)現(xiàn)的靜態(tài)的多態(tài);虛函數(shù)是通過(guò)類(lèi)之間的繼承關(guān)系和函數(shù)在子類(lèi)中被覆蓋,
      友元關(guān)系的特性
      單向性、非傳遞性、不能繼承的。
      構(gòu)造函數(shù)和析構(gòu)函數(shù)能否重載?
      構(gòu)造函數(shù)可以有多個(gè)且參數(shù)不同,可以重載;析構(gòu)函數(shù)只能有一個(gè)所以不能重載,而且他沒(méi)有參數(shù)。
      虛函數(shù)的實(shí)現(xiàn)
      虛函數(shù)表(虛表指針)???
      main函數(shù)執(zhí)行前還會(huì)執(zhí)行什么代碼
      全局域的對(duì)象的構(gòu)造函數(shù)會(huì)在main函數(shù)執(zhí)行前執(zhí)行
      當(dāng)一個(gè)類(lèi)中沒(méi)有聲明任何變量和函數(shù)時(shí),sizeof 類(lèi)是多少,為什么?
      大小是1,是為了在程序中給不同的對(duì)象分配不同的內(nèi)存地址,來(lái)區(qū)分類(lèi)的不同對(duì)象。
      delete 與 delete[] 的區(qū)別
      delete只調(diào)用一次析構(gòu)函數(shù),后者會(huì)調(diào)用每一個(gè)對(duì)象的析構(gòu)函數(shù)。
      基類(lèi)和派生類(lèi)析構(gòu)和構(gòu)造函數(shù)的調(diào)用順序
      在對(duì)象創(chuàng)建過(guò)程中基類(lèi)的構(gòu)造函數(shù)會(huì)被先調(diào)用,然后是本類(lèi)的構(gòu)造函數(shù);析構(gòu)函數(shù)的調(diào)用過(guò)程相反。在基類(lèi)的構(gòu)造函數(shù)工作的過(guò)程中,本類(lèi)的對(duì)象沒(méi)有被完全建立,本類(lèi)的信息是不完整的,同理,在析構(gòu)過(guò)程中,基類(lèi)的析構(gòu)函數(shù)工作過(guò)程中,本類(lèi)的信息也已經(jīng)被銷(xiāo)毀了。
      繼承的優(yōu)缺點(diǎn)
      是代碼復(fù)用的一種方式,提供一定程度上的靈活性,優(yōu)點(diǎn)也成為了限制。
      類(lèi)的構(gòu)造和析構(gòu)函數(shù)什么時(shí)候被調(diào)用,被誰(shuí)調(diào)用?
      分別在類(lèi)的生命周期開(kāi)始和結(jié)束時(shí)被系統(tǒng)自動(dòng)調(diào)用。有時(shí)也可以由程序員手動(dòng)調(diào)用。
      預(yù)編譯
      多個(gè)模塊,不經(jīng)常改動(dòng)。
      c++中多態(tài)的實(shí)現(xiàn)
      a.靜態(tài)多態(tài),在編譯期間確定(函數(shù)模板和函數(shù)重載,注意函數(shù)缺省參數(shù)),b.動(dòng)態(tài)多態(tài),在運(yùn)行期間確定(虛函數(shù),覆蓋,指針或引用)
      c++中四大特性的作用
      封裝使代碼能夠模塊化,繼承使代碼易于擴(kuò)展,而多態(tài)是為了接口的一致和重用,抽象???(數(shù)據(jù)抽象、算法抽象)類(lèi)的概念,模板的概念
      普通函數(shù)、靜態(tài)函數(shù)、友元函數(shù)為什么不能為虛函數(shù)
      普通函數(shù)會(huì)在編譯時(shí)確定代碼,無(wú)法實(shí)現(xiàn)動(dòng)態(tài)多態(tài);類(lèi)的靜態(tài)成員函數(shù)在基類(lèi)和所有子類(lèi)中只有一份拷貝,友元函數(shù)沒(méi)有繼承的特性,也無(wú)法實(shí)現(xiàn)動(dòng)態(tài)多態(tài),所以沒(méi)必要支持虛函數(shù)
      內(nèi)聯(lián)函數(shù)為什么不能為虛函數(shù)
      內(nèi)聯(lián)函數(shù)是為了在編譯期間將代碼展開(kāi),虛函數(shù)是為了在運(yùn)行時(shí)支持執(zhí)行多個(gè)不同的代碼分支,從概念上就是不兼容的。
      構(gòu)造函數(shù)為什么不能是虛函數(shù)
      a.虛函數(shù)的實(shí)現(xiàn)需要虛表的支持,此時(shí)虛表尚未建立 b.構(gòu)造函數(shù)無(wú)法通過(guò)指針或引用來(lái)調(diào)用,所以不必設(shè)置為虛函數(shù) c.虛函數(shù)的實(shí)現(xiàn)需要通過(guò)指針或引用確定對(duì)象的類(lèi)型,構(gòu)造函數(shù)被調(diào)用時(shí)還沒(méi)有完整的對(duì)象,無(wú)法確定對(duì)象類(lèi)型,所以無(wú)法設(shè)置為虛函數(shù)。
      為什么基類(lèi)的析構(gòu)函數(shù)最好設(shè)置為虛函數(shù)?
      因?yàn)閯?dòng)態(tài)多態(tài)性支持通過(guò)基類(lèi)指針或引用來(lái)使用派生類(lèi)對(duì)象,此時(shí)當(dāng)派生類(lèi)對(duì)象需要析構(gòu)時(shí),只有析構(gòu)函數(shù)是虛函數(shù)時(shí),才能正確的析構(gòu)
      類(lèi)的私有成員可以被哪些函數(shù)訪問(wèn)
      可以被本類(lèi)的成員函數(shù)和友元訪問(wèn)
      類(lèi)的保護(hù)成員可以被那些函數(shù)訪問(wèn)
      可以被本類(lèi)的成員函數(shù)和友元和公有和保護(hù)派生方式派生出來(lái)的類(lèi)訪問(wèn)
      常引用
      既提高程序運(yùn)行的效率又要保護(hù)傳遞給函數(shù)的數(shù)據(jù)不再函數(shù)中被改變
      指針和引用的區(qū)別
      引用必須被初始化,初始化后就不可以改變而指針不必,指針可以指向空值,引用不可以。
      switch后的表達(dá)式不可以為什么類(lèi)型
      可以為整型、字符、布爾、枚舉類(lèi)型;不可以為浮點(diǎn)型數(shù)據(jù)。
      如何引用一個(gè)定義過(guò)的全局變量
      a. 全局變量在頭文件內(nèi),可以直接引用頭文件后使用 b. 如果在其他源文件中定義的全局變量,可以使用extern關(guān)鍵字使用此全局變量。
      頻繁使用的短小函數(shù)在c/c++語(yǔ)言中如何處理
      在c語(yǔ)言中使用宏定義,在c++語(yǔ)言中使用內(nèi)聯(lián)函數(shù)。
      內(nèi)存分配的三種方式
      靜態(tài)存儲(chǔ)區(qū)分配在編譯期間確定、棧上分配、堆上動(dòng)態(tài)分配。
      extern "C"有什么用
      用來(lái)在c++程序程序中聲明特定的程序語(yǔ)句或語(yǔ)句塊按照c語(yǔ)言的函數(shù)命名規(guī)則進(jìn)行編譯。
      使用#define和const定義常量有什么區(qū)別
      #define是C語(yǔ)言預(yù)處理器的語(yǔ)法關(guān)鍵字,在編譯期間只執(zhí)行常量替換;const是C++語(yǔ)言定義常變量的方法,它具有類(lèi)型,有內(nèi)存分配,可以用sizeof測(cè)試出長(zhǎng)度。
      struct和class的區(qū)別
      struct成員默認(rèn)訪控屬性是公有的,而class的默認(rèn)訪控屬性是私有的。
      局部變量和全局變量能否同名?
      可以,局部變量會(huì)屏蔽全局變量;要訪問(wèn)全局變量需要使用::域運(yùn)算符。
      assert宏
      用于調(diào)試程序,以避免程序中出現(xiàn)明顯錯(cuò)誤的或非法的數(shù)據(jù),可以使用 #define NDEBUG 來(lái)在特定版本的程序中禁止使用assert斷言
      windows消息隊(duì)列由哪幾部分組成
      a. 系統(tǒng)消息隊(duì)列,由操作系統(tǒng)負(fù)責(zé)將消息投放到特定的應(yīng)用程序的消息隊(duì)列中 b. 應(yīng)用程序消息循環(huán),每個(gè)應(yīng)用程序都有各自的消息隊(duì)列,在應(yīng)用程序消息循環(huán)中,不斷地從自己的消息隊(duì)列中取出消息并進(jìn)行特定的消息的處理,然后再將消息交由windows操作系統(tǒng)來(lái)調(diào)用相應(yīng)的窗口處理函數(shù) c. 窗口處理函數(shù),除了在消息循環(huán)中已經(jīng)處理的消息外,其他的消息都會(huì)由操作系統(tǒng)調(diào)用相應(yīng)的窗口處理函數(shù)來(lái)處理不同的消息。
      sendmessage 和 postmessage有什么區(qū)別
      sendmessage是直接將消息過(guò)程跳過(guò)消息隊(duì)列和消息循環(huán)直接交由特定的窗口處理函數(shù)進(jìn)行處理,并等待消息處理結(jié)束返回。postmessage是將消息放入應(yīng)用程序消息隊(duì)列中,但是并不等待消息處理結(jié)束而是即刻返回。
      消息映射
      是在mfc類(lèi)中,程序員通過(guò)將系統(tǒng)消息映射到類(lèi)的成員函數(shù)從而實(shí)現(xiàn)mfc類(lèi)對(duì)操作系統(tǒng)消息的各種處理。
      構(gòu)成win32 api的三個(gè)動(dòng)態(tài)鏈接庫(kù)是什么
      kernel32.dll、user32.dll和gdi32.dll
      windows消息分為幾類(lèi),并對(duì)各個(gè)類(lèi)進(jìn)行簡(jiǎn)要的介紹?
      a.窗口消息:與窗口相關(guān)的消息,除 WM_COMMAND b. 命令消息:用于處理用戶請(qǐng)求,以 WM_COMMAND 表示的消息 c. 控件通知消息:統(tǒng)一由 WM_NOTIFY 表示 d.用戶自定義消息
      windows如何自定義消息
      使用 WM_USERWM_APP 來(lái)自定義消息
      怎么消除多重繼承中的二義性
      a.使用成員限定符 b.使用虛基類(lèi)
      運(yùn)行時(shí)多態(tài)的條件
      a.繼承 b.基類(lèi)虛函數(shù)在子類(lèi)中被重寫(xiě) c.使用基類(lèi)指針或引用指向子類(lèi)對(duì)象
      MFC中大部分類(lèi)是從哪個(gè)類(lèi)中繼承而來(lái)
      CObject類(lèi)->CCmdTarget類(lèi)
      c++類(lèi)成員函數(shù)重載、覆蓋和隱藏的區(qū)別
      重載的條件(3個(gè))、在基類(lèi)和派生類(lèi)的同名函數(shù)之間的關(guān)系除了覆蓋之外都是隱藏關(guān)系。覆蓋的條件(有繼承關(guān)系的父子類(lèi)之間的同名函數(shù),如果參數(shù)相同,返回值協(xié)變且基類(lèi)函數(shù)有virtual關(guān)鍵字的話,則同名函數(shù)之間構(gòu)成了覆蓋關(guān)系)。
      如何打印出當(dāng)前源文件的文件名和行號(hào)
      __FILE____LINE__

      Author: mashomee

      Created: 2015-03-10 Tue 20:05

      Emacs 24.4.1 (Org mode 8.2.10)

      Validate

      posted @ 2015-03-10 20:06  卡巴洛  閱讀(554)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产精品久久无码一区| 最新亚洲av日韩av二区| 精品国产迷系列在线观看| 久久精品夜夜夜夜夜久久| 乱人伦人妻中文字幕无码久久网| 国产精品一二区在线观看| 大地资源中文在线观看西瓜| 亚洲一区二区中文字幕| 激情人妻自拍中文夜夜嗨| 国产精品中文字幕av| 伊人久久久大香线蕉综合直播 | 亚洲国产成人va在线观看天堂 | 亚洲大尺度无码专区尤物| 国产av激情无码久久| 亚洲av精选一区二区| 亚洲欧洲日韩国内高清| 高清无码午夜福利视频| 最新亚洲人成网站在线观看| 国产极品视频一区二区三区| 国产精品美女黑丝流水| 免费A级毛片无码A∨蜜芽试看 | 国产中文三级全黄| 马山县| 日日碰狠狠添天天爽不卡| 国产免费一区二区不卡| 玛曲县| 亚洲全网成人资源在线观看| 国产伦码精品一区二区| 337p粉嫩大胆色噜噜噜| 在线看国产精品自拍内射| 116美女极品a级毛片| 精品黑人一区二区三区| 日本一本无道码日韩精品| 91中文字幕一区在线| 亚洲男女羞羞无遮挡久久丫| 一本无码在线观看| 国产伦一区二区三区久久| 漂亮人妻中文字幕丝袜| 国语偷拍视频一区二区三区| 天天做天天爱夜夜爽| 永久免费av网站可以直接看的 |