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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

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

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是父類的私有函數,不可訪問 }; int main() { base a; a.printa(); //a.printhello(); //printhello是類derived的protected函數,不可訪問。 }

2. sizeof 和 strlen 的區別

① sizeof 是一個操作符,strlen 是庫函數。

#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 有什么區別

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

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

因為兩者實現的機理不同。

4.簡述C\C++程序編譯的內存情況分配

C、C++中內存分配方式可以分為三種:

(1)從靜態存儲區域分配:內存在程序編譯時就已經分配好,這塊內存在程序的整個運行期間都存在。速度快、不容易出錯,因為有系統會善后。例如全局變量,static變量等。

一個 C、C++程序編譯時內存分為 5 大存儲區:堆區、棧區、全局區、文字常量區、程序代碼區。

5. 面向對象的三大特征

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

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

總結:作用

① 封裝可以隱藏實現細節,使得代碼模塊化

6. 簡述多態的實現原理

編譯器發現一個類中有虛函數,便會立即為此類生成虛函數表vtable。虛函數表的各表項為指向對應虛函數的指針。編譯器還會在此類中隱含插入一個指針 vptr指向虛函數表。調用此類的構造函數時,在類的構造函數中,編譯器會隱含執行 vptr 與 vtable 的關聯代碼,將 vptr 指向對應的 vtable,將類與此類的 vtable 聯系了起來。另外在調用類的構造函數時,指向基礎類的指針此時已經變成指向具體的類的 this 指針,這樣依靠此 this 指針即可得到正確的 vtable。

如此才能真正與函數體進行連接,這就是動態聯編,實現多態的基本原理。

注意:一定要區分虛函數,純虛函數、虛擬繼承的關系和區別。牢記虛函數實現原理,因為多態C++面試的重要考點之一,而虛函數是實現多態的基礎。

7. c++空類的成員函數

缺省的構造函數

注意:只有當實際使用這些函數的時候,編譯器才會去定義它們。

8. 談談你對拷貝構造函數和賦值運算符的認識

兩個不同之處:

① 拷貝構造函數生成新的類對象,而賦值運算符不能。

注意:當有類中有指針類型的成員變量時,一定要重寫拷貝構造函數和賦值運算符,不要使用默認的。

9. extern 有什么作用

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

10. 引用和指針區別

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

它,

不僅僅是一個碼

掃碼關注

C++資源免費送

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。