C++編程剖析 問題 方案 和設計準則
阿新 • • 發佈:2019-04-20
href nth row net www. 但是 tar exc article
1、Set的每個對象為什麽會有三個指針?
2、非虛接口做為對外的接口,私有的虛函數作為子類不同的實現, 非虛接口函數當中只要簡單的做一層轉發而已。
a) 不會帶來效率的損失,因為內聯函數編譯器會優化;
b) 唯一的弊端就是你多寫了一行代碼。
3、三類隔離接口和實現的方式: Bridge模式(Gamma95); Pimpl慣用法(控制編譯期依賴和異常安全保證); handle/Body 或者envelope/letter(coplien92);
設計模式之——bridge模式 在不改變原有接口的基礎上擴展新的功能;
淺析Java設計模式——適配器模式
4、構造函數為什麽不能是純虛的?
文章有解答:https://blog.csdn.net/shilikun841122/article/details/79012779
5、二義性和可訪問性是控制子類代碼行為的主要方式?
6、new的幾種方式:
帶異常的new,:會拋出一個bad_alloc的異常, 在棧解開的過程當中至少會銷毀一部分對象從而令它們持有的資源得到釋放;
place的new: 在指定的內存構造一個對象:
non exceptionThrow的new; 如果內存無法分配,就返回一個空指針,不拋出任何異常。
new的判空一般情況下無作用,因為一般操作系統都是先預留內存,在使用的時候才會commit,從而暴露異常;但是此時暴露異常已經不是問題的第一現場了,對問題的解決沒有太大的幫助。
C++編程剖析 問題 方案 和設計準則