C 面試常見問題(五)

2021-09-26 15:50:40 字數 588 閱讀 3939

使用動態庫進行鏈結。動態庫(.so 、.dll )。

具體的區別下面這篇部落格講得比較詳細。

大家可以移步至:c++靜態庫與動態庫

因此乙個物件的大小 >= 所有非靜態成員大小的總和

由以上分析可以得到菱形繼承物件的記憶體大小問題:

#includeusing namespace std;

class a //大小為8,int 4個位元組,虛函式表4個位元組

int a;

};class b :virtual public a //大小為16,變數a,b共8位元組,虛基類表指標4,虛函式表4個位元組

;class c :virtual public a //與b一樣16

;class d :public b, public c //28,變數a,b,c,d共16,b的虛基類指標4,c的虛基類指標4,虛函式表4個位元組

;int main()

程式輸出為:

8

1616

28

參考博文c++中類物件的記憶體布局以及虛函式表生成

面試常見問題之五

塊就是用一對 括起來的 片斷,可能我們往往會忽視它的存在,不就多了一對括號嘛。但是加不加括號的結果可能會有所差別。先看看面試題 靜態 塊 構造 塊和構造方法的執行的先後順序。答案是 靜態 塊 構造 塊 構造方法 首先回答這個問題,需要弄清楚靜態 塊和構造 塊各是什麼。構造 塊 其實就是類中被花括號包...

C 面試常見問題

1.引用和指標的區別 區別 1 引用不能為空,指標可以為空 2 引用必須初始化,指標不需要 3 引用初始化以後不能改變,指標可以改變初始化物件後的值 4 引用訪問物件後是直接訪問,指標訪問物件是間接訪問 5 引用大小是所引用物件的大小,指標大小是指標類本身的大小 6 引用沒有const,指標有con...

C 面試常見問題

智慧型指標的作用是管理乙個指標,因為存在以下這種情況 申請的空間在函式結束時忘記釋放,造成記憶體洩漏。使用智慧型指標可以很大程度上的避免這個問題,因為智慧型指標就是乙個類,當超出了類的作用域是,類會自動呼叫析構函式,析構函式會自動釋放資源。所以智慧型指標的作用原理就是在函式結束時自動釋放記憶體空間,...