日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++面试常见问题整理汇总(面试者必看哦!)

發(fā)布時(shí)間:2023/12/2 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++面试常见问题整理汇总(面试者必看哦!) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 繼承方式

public  ??? 父類的訪問級別不變

#include <iostream> using namespace std; class base { public: void printa() { cout <<"base"<< endl; } protected: void printhello() { cout <<"helo"<< endl; } private: void printnohello() { cout <<"no hello"<< endl; } }; class derived : public base { public: void printb() { printhello(); } // void printc() { printnohello(); } //printnohello是父類的私有函數(shù),不可訪問 }; int main() { base a; a.printa(); //a.printhello(); //printhello是類derived的protected函數(shù),不可訪問。 }

2. sizeof 和 strlen 的區(qū)別

① sizeof 是一個(gè)操作符,strlen 是庫函數(shù)。

#include <iostream> #include <cstdlib> #include <cstring> using namespace std; int main() { int a[] = {1, 2, 3, 4, 5}; cout << sizeof(a) << endl; //20 // cout << strlen(a) << endl; char b[] = {'a', 'b'}; cout << strlen(b) << endl; //6 cout << sizeof(b) << endl; //2 }

3. C中的 malloc 和C++中的 new 有什么區(qū)別

new、delete 是操作符,可以重載,只能在 C++中使用。

注意:malloc 申請的內(nèi)存空間要用 free 釋放,而 new 申請的內(nèi)存空間要用 delete 釋放,不要混用。

因?yàn)閮烧邔?shí)現(xiàn)的機(jī)理不同。

4.簡述C\C++程序編譯的內(nèi)存情況分配

C、C++中內(nèi)存分配方式可以分為三種:

(1)從靜態(tài)存儲(chǔ)區(qū)域分配:內(nèi)存在程序編譯時(shí)就已經(jīng)分配好,這塊內(nèi)存在程序的整個(gè)運(yùn)行期間都存在。速度快、不容易出錯(cuò),因?yàn)橛邢到y(tǒng)會(huì)善后。例如全局變量,static變量等。

一個(gè) C、C++程序編譯時(shí)內(nèi)存分為 5 大存儲(chǔ)區(qū):堆區(qū)、棧區(qū)、全局區(qū)、文字常量區(qū)、程序代碼區(qū)。

5. 面向?qū)ο蟮娜筇卣?/strong>

① 封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對象操作,對不可信的進(jìn)行信息隱藏。

覆蓋,是指子類重新定義父類的虛函數(shù)的做法。

總結(jié):作用

① 封裝可以隱藏實(shí)現(xiàn)細(xì)節(jié),使得代碼模塊化

6. 簡述多態(tài)的實(shí)現(xiàn)原理

編譯器發(fā)現(xiàn)一個(gè)類中有虛函數(shù),便會(huì)立即為此類生成虛函數(shù)表vtable。虛函數(shù)表的各表項(xiàng)為指向?qū)?yīng)虛函數(shù)的指針。編譯器還會(huì)在此類中隱含插入一個(gè)指針 vptr指向虛函數(shù)表。調(diào)用此類的構(gòu)造函數(shù)時(shí),在類的構(gòu)造函數(shù)中,編譯器會(huì)隱含執(zhí)行 vptr 與 vtable 的關(guān)聯(lián)代碼,將 vptr 指向?qū)?yīng)的 vtable,將類與此類的 vtable 聯(lián)系了起來。另外在調(diào)用類的構(gòu)造函數(shù)時(shí),指向基礎(chǔ)類的指針此時(shí)已經(jīng)變成指向具體的類的 this 指針,這樣依靠此 this 指針即可得到正確的 vtable。

如此才能真正與函數(shù)體進(jìn)行連接,這就是動(dòng)態(tài)聯(lián)編,實(shí)現(xiàn)多態(tài)的基本原理。

注意:一定要區(qū)分虛函數(shù),純虛函數(shù)、虛擬繼承的關(guān)系和區(qū)別。牢記虛函數(shù)實(shí)現(xiàn)原理,因?yàn)槎鄳B(tài)C++面試的重要考點(diǎn)之一,而虛函數(shù)是實(shí)現(xiàn)多態(tài)的基礎(chǔ)。

7. c++空類的成員函數(shù)

缺省的構(gòu)造函數(shù)

注意:只有當(dāng)實(shí)際使用這些函數(shù)的時(shí)候,編譯器才會(huì)去定義它們。

8. 談?wù)勀銓截悩?gòu)造函數(shù)和賦值運(yùn)算符的認(rèn)識

兩個(gè)不同之處:

① 拷貝構(gòu)造函數(shù)生成新的類對象,而賦值運(yùn)算符不能。

注意:當(dāng)有類中有指針類型的成員變量時(shí),一定要重寫拷貝構(gòu)造函數(shù)和賦值運(yùn)算符,不要使用默認(rèn)的。

9. extern 有什么作用

extern 標(biāo)識的變量或者函數(shù)聲明其定義在別的文件中,提示編譯器遇到此變量和函數(shù)時(shí)在其它模塊中尋找其定義。

10. 引用和指針區(qū)別

① 引用必須被初始化,但是不分配存儲(chǔ)空間。指針不必在聲明時(shí)初始化,在初始化的時(shí)候需要分配存儲(chǔ)空間

它,

不僅僅是一個(gè)碼

掃碼關(guān)注

C++資源免費(fèi)送

總結(jié)

以上是生活随笔為你收集整理的C++面试常见问题整理汇总(面试者必看哦!)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。