| 創(chuàng)作者Lippman參加設(shè)計(jì)方案了全球第一套C++編譯程序cfront,這本書(shū)便是一位杰出的C++編譯程序設(shè)計(jì)師向你論述他如何處理各種各樣explicit(確立出現(xiàn)于C++程序代碼中)和implicit(掩藏于程序代碼身后)的C++語(yǔ)意。 《 深度探索C++對(duì)象模型 》致力于C++面向?qū)ο缶幊叹幊淘O(shè)計(jì)的底層體制,包含化學(xué)結(jié)構(gòu)式語(yǔ)意、暫時(shí)性目標(biāo)的轉(zhuǎn)化成、封裝、承繼,及其虛擬虛擬涵數(shù)和虛擬承繼。這本書(shū)讓你了解:一旦你可以掌握底層完成實(shí)體模型,你的程序代碼將得到多么的大的高效率。Lippman回應(yīng)了這些有關(guān)C++附加負(fù)載與復(fù)雜性的各種各樣錯(cuò)誤報(bào)告和知識(shí)點(diǎn),但也指出在其中一些成本費(fèi)和權(quán)益互換的確存有。他論述了各種各樣的完成實(shí)體模型,指出他們的超進(jìn)化之道以及實(shí)質(zhì)要素。書(shū)里包含了C++領(lǐng)域模型的語(yǔ)意暗示著,并指出這一實(shí)體模型是怎樣危害你的程序流程的。 針對(duì)C++底層體制很感興趣的閱讀者,這必定是一本給你大呼舒服的絕佳好書(shū)推薦。 目錄 本立道生(侯捷 譯序) III 目錄 VII 前言(Stanley B. Lippman) XIII 第0章 導(dǎo)讀(譯者的話(huà)) XXV 第1章 關(guān)于對(duì)象(Object Lessons) 1 加上封裝后的布局成本(Layout Costs for Adding Encapsulation) 5 1.1 C++對(duì)象模式(The C++ Object Model) 6 簡(jiǎn)單對(duì)象模型(A Simple Object Model) 7 表格驅(qū)動(dòng)對(duì)象模型(A Table-driven Object Model) 8 C++對(duì)象模型(The C++ Object Model) 9 對(duì)象模型如何影響程序(How the Object Model Effects Programs) 13 1.2 關(guān)鍵詞所帶來(lái)的差異(A Keyword Distinction) 15 關(guān)鍵詞的困擾 16 策略性正確的struct(The Politically Correct Struct) 19 1.3 對(duì)象的差異(An Object Distinction) 22 指針的類(lèi)型(The Type of a Pointer) 28 加上多態(tài)之后(Adding Polymorphism) 29 第2章 構(gòu)造函數(shù)語(yǔ)意學(xué)(The Semantics of Constructors) 37 2.1 Default Constructor的構(gòu)造操作 39 帶有Default Constructor的Member Class Object 41 帶有Default Constructor的Base Class 44 帶有一個(gè)Virtual Function的Class 44 帶有一個(gè)Virtual Base Class的Class 46 總結(jié) 47 2.2 Copy Constructor的構(gòu)造操作 48 Default Memberwise Initialization 49 Bitwise Copy Semantics(位逐次拷貝) 51 不要Bitwise Copy Semantics! 53 重新設(shè)定Virtual Table的指針 54 處理Virtual Base Class Subobject 57 2.3 程序轉(zhuǎn)化語(yǔ)意學(xué)(Program Transformation Semantics) 60 顯式的初始化操作(Explicit Initialization) 61 參數(shù)的初始化(Argument Initialization) 62 返回值的初始化(Return Value Initialization) 63 在使用者層面做優(yōu)化(Optimization at the User Level) 65 在編譯器層面做優(yōu)化(Optimization at the Compiler Level) 66 Copy Constructor:要還是不要? 72 摘要 74 2.4 成員們的初始化隊(duì)伍(Member Initialization List) 74 第3章 Data語(yǔ)意學(xué)(The Semantics of Data) 83 3.1 Data Member的綁定(The Binding of a Data Member) 88 3.2 Data Member的布局(Data Member Layout) 92 3.3 Data Member的存取 94 Static Data Members 95 Nonstatic Data Members 97 3.4 繼承與Data Member 99 只要繼承不要多態(tài)(Inheritance without Polymorphism) 100 加上多態(tài)(Adding Polymorphism) 107 多重繼承(Multiple Inheritance) 112 虛擬繼承(Virtual Inheritance) 116 3.5 對(duì)象成員的效率(Object Member Efficiency) 124 3.6 指向Data Members的指針(Pointer to Data Members) 129 指向Members的指針的效率問(wèn)題 134 第4章 Function語(yǔ)意學(xué)(The Semantics of Function) 139 4.1 Member的各種調(diào)用方式 140 Nonstatic Member Functions(非靜態(tài)成員函數(shù)) 141 Virtual Member Functions(虛擬成員函數(shù)) 147 Static Member Functions(靜態(tài)成員函數(shù)) 148 4.2 Virtual Member Functions(虛擬成員函數(shù)) 152 多重繼承下的Virtual Functions 159 虛擬繼承下的Virtual Functions 168 4.3 函數(shù)的效能 170 4.4 指向Member Function的指針(Pointer-to-Member Functions) 174 支持指向Virtual Member Functions的指針 176 在多重繼承之下,指向Member Functions的指針 178 指向Member Functions之指針的效率 180 4.5 Inline Functions 182 形式參數(shù)(Formal Arguments) 185 局部變量(Local Variables) 186 第5章 構(gòu)造、析構(gòu)、拷貝語(yǔ)意學(xué)(Semantics of Construction, Destruction, and Copy) 191 純虛函數(shù)的存在(Presence of a Pure Virtual Function) 193 虛擬規(guī)格的存在(Presence of a Virtual Specification) 194 虛擬規(guī)格中const的存在 195 重新考慮class的聲明 195 5.1 無(wú)繼承情況下的對(duì)象構(gòu)造 196 抽象數(shù)據(jù)類(lèi)型(Abstract Data Type) 198 為繼承做準(zhǔn)備 202 5.2 繼承體系下的對(duì)象構(gòu)造 206 虛擬繼承(Virtual Inheritance) 210 vptr初始化語(yǔ)意學(xué)(The Semantics of the vptr Initialization) 213 5.3 對(duì)象復(fù)制語(yǔ)意學(xué)(Object Copy Semantics) 219 5.4 對(duì)象的效能(Object Efficiency) 225 5.5 析構(gòu)語(yǔ) |
|
|
來(lái)自: 覓書(shū)時(shí)代 > 《編程》