C++面試題
記錄幾個C++比較細的問題
1、虛函數(shù)表共享問題
2、空指針能訪問成員函數(shù)嗎? ex: A* p=nullptr;p->f();
3、sizeof(lambda表達式) 的值?
4、memset(this,0,sizeof(*this))合法嗎?
更新:加入一個牛友評論的問題
5、如果在構造函數(shù)里面調用了一個該類的虛函數(shù),會發(fā)生什么?
1、虛函數(shù)表共享問題
2、空指針能訪問成員函數(shù)嗎? ex: A* p=nullptr;p->f();
3、sizeof(lambda表達式) 的值?
4、memset(this,0,sizeof(*this))合法嗎?
更新:加入一個牛友評論的問題
5、如果在構造函數(shù)里面調用了一個該類的虛函數(shù),會發(fā)生什么?
全部評論

cpp的終點:變成人肉編譯器?
最后三個光子一面全問了
2.空指針可以訪問成員函數(shù),不可以訪問成員變量,因為存儲的位置不一樣
2. 能訪問, 成員函數(shù)本質是一個普通函數(shù)加一個類的 this 指針參數(shù), 函數(shù)本身存在 text 段, 所以類對象能直接訪問, 貌似可以這樣理解?
第二個:對象的成員變量和成員函數(shù)存放位置不同,成員變量是在對象內存內的,虛函數(shù)導致有虛函數(shù)指針這個隱式成員變量,如果空指針不涉及到成員變量和虛函數(shù),那么即空指針并沒有訪問對象的內存,所以沒事。 我理解的不知道對不對!
sizeof(lamda表達式) 的應該會和捕獲的變量類型以及數(shù)量有關吧,然后再考慮內存對齊問題
第一個要達到什么程度呢?就是調用繼承類就指向虛表對應的位置就行了嗎?
深度探索C++對象模型
第二個空指針是UB

我比較好奇第一個,虛函數(shù)表這個要回答到什么程度?
是說,一個類用一個虛函數(shù)表就行了,還是有更深的。
Cpp卷爆炸了呀,本來就沒多少崗位來,這么多人直接寄
佬,我昨天遇到一個問,如果在構造函數(shù)里面調用了一個該類的虛函數(shù),會發(fā)生什么,這種怎么搞呀
我只知道構造函數(shù)不能是虛的
這幾個問題好難,一個也答不上來
m

第四個被問到過,沒答出來
第二個前幾天我就被問到了??
有沒有大佬給個答案
相關推薦
點贊 評論 收藏
分享