天天看點

Inside C++ Object Model 中文版 英文版

下載下傳 Inside C++ Object Model 中文版 英文版  

  • 作者:(美)Stanley B. Lippman 著,侯捷 譯
  • 出版社:華中科技大學出版社
  • 出版日期:2001-5-1
  • 内容提要 本書重點:探索“對象導向程式所支援的C++對象模型”下的程式行為。對于“對象導向性質之基礎實作技術”以及“各種性質背後的隐含利益交換”提供一個清楚的認識。檢驗由程式變形所帶來的效率沖擊。提供豐富的程式範例、圖檔,以及對象導向觀念和底層對象模型之間的效率測量。

        C++成山似海的書籍堆中,這一本不是嬰幼兒奶粉,也不是較大嬰兒奶粉,它是成人專用的低脂高鈣特殊奶粉。

        對于C++底層機制感興趣的讀者,這本書會給你“漫卷詩書喜欲狂”的感覺。

        了解C++ Object Model,是學習Component Object Model的最短路線。

        如果你是一位C++程式員,渴望對于底層知識獲得一個完整的了解,那麼Inside The C++ Object Model正适合你。

        關于作者:Stanley Lippman目前是華特迪斯尼主題動畫公司(Walt Disney Feature Animation)的主要軟體工程師。他曾經在AT&T貝爾實驗室上司cfront 3.0和2.1版的編譯器開發小組。他也是貝爾實驗室中由Bjame Stroustrup所上司的Foundation專案組中的一員,負責對象模型并研究C++程式開發環境。Stan著有極為成功的C++ Primer一書,也發表過許多C++方面的論文。Stan最近剛從C++ Report的編輯位置上“退隐”,他曾在那個位置上做了4年。他的C++論述遍及全球。

        關于譯者:侯捷,海峽兩岸著名的電腦技術自由作家,對于技術的鑽研和發表,有獨特的品性與堅持。作品涵蓋著、譯、評三方面,散見于各種刊特、媒體、網站論壇,深受讀者喜愛和尊敬。 編輯推薦 Inside The C++ Object Model專注于C++對象導向程式設計的底層機制,包括結構式語意、暫時性對象的生成、封裝、繼承,以及虛拟——虛拟函數和虛拟繼承。這本書讓你知道:一旦你能夠了解底層實作模型,你的程式代碼将獲得多麼大的效率。Lippman澄清了那些關于C++額外負荷與複雜度的各種錯誤資訊和迷思,但也指出其中某些成本和利益交換确實存在。他闡述了各式各樣的實作模型,指出它們的進化之道及其本質因素。本書涵蓋了C++對象模型的語意暗示,并指出這個模型是如何影響你的程式的。 目錄 本立道生(侯捷 譯序)

    目錄

    前言(Stanley B.Lippman)

    第0章 導讀(譯者的話)

    第1章 關于對象(Object Lessons)

    加上封裝後的布局成本(Layout Costs for Adding Encapsulation)

    1.1 C++模式模式(The C++ Object Model)

    簡單對象模型(A Simple Object Model)

    表格驅動對象模型(A Table-driven Object Model)

    C++對象模型(The C++ Object Model)

    對象模型如何影響程式(How the Object Model Effects Programs)

    1.2 關鍵詞所帶來的差異(A Keyword Distinction)

    關鍵詞的困擾

    政策性正确的struct(The Politically Correct Struct)

    1.3 對象的差異(An Object Distinction)

    指針的類型(The Type of a Pointer)

    加上多态之後(Adding Polymorphism)

    第2章 構造函數語意學(The Semantics of constructors)

    2.1 Default Constructor的建構操作

    “帶有Default Constructor”的Member Class Object

    “帶有Default Constructor”的Base Class

    “帶有一個Virual Function”的Class

    “帶有一個virual Base class”的Class

    總結

    2.2 Copy Constructor的建構操作

    Default Memberwise Initialization

    Bitwise Copy Semantics(位逐次拷貝)

    不要Bitwise Copy Semantics!

    重新設定的指針Virtual Table

    處理Virtual Base Class Subobject

    2.3 程式轉換語意學(Program Transformation Semantics)

    明确的初始化操作(Explicit Initialization)

    參數的初始化(Argument Initialization)

    傳回值的初始化(Return Value Initialization)

    在使用者層面做優化(Optimization at the user Level)

    在編譯器層面做優化(Optimization at the Compiler Level)

    Copy Constructor:要還是不要?

    摘要

    2.4 成員們的初始化隊伍(Member Initialization List)

    第3章 Data語意學(The Semantics of Data)

    3.1 Data Member的綁定(The Binding of a Data Member)

    3.2 Data Member的布局(Data Member Layout)

    3.3 Data Member的存取

    Static Data Members

    Nonstatic Data Member

    3.4 “繼承”與Data Member

    隻要繼承不要多态(Inheritance without Polymorphism)

    加上多态(Adding Polymorphism)

    多重繼承(Multiple Inheritance)

    虛拟繼承(Virtual Inheritance)

    3.5 對象成員的效率(Object Member Efficiency)

    3.6 指向Data Members的指針(Pointer to Data Members)

    “指向Members的指針”的效率問題

    第4章 Function語意學(The Semantics of Function)

    4.1 Member的各種調用方式

    Nonstatic Member Functions(非靜态成員函數)

    Virtual Member Functions(虛拟成員函數)

    Static Member Functions(靜态成員函數)

    4.2 Virtual Member Functions(虛拟成員函數)

    多重繼承下的Virtual Functions

    虛拟繼承下的Virtual Functions

    4.3 函數的效能

    4.4 指向Member Functions的指針(Pointer-to-Member Functions)

    支援“指向Virtual Member Functions”之指針

    在多重繼承之下,指向Member Functions的指針

    “指向Member Functions之指針”的效率

    4.5 Inline Functions

    形式對數(Formal Arguments)

    局部變量(Local Variables)

    第5章 構造、解構、拷貝 語意學(Semantics of Construction,Destruction,and Copy)

    純虛拟函數的存在(Presence of a Pure Virtual Function)

    虛拟規格的存在(Presence of a Virtual Specification)

    虛拟規格中const的存在

    重新考慮class的聲明

    5.1 無繼承情況下的對象構造

    抽象資料類型(Abstract Data Type)

    為繼承做準備

    5.2 繼承體系下的對象構造

    虛拟繼承(Virtual Inheritance)

    初始化語意學(The Semantics of the vptr Initialization)

    5.3 對象複制語意學(Object Copy Semantics)

    5.4 對象的功能(Object Efficiency)

    5.5 解構語意學(Semantics of Destruction)

    第6章 執行期語意學(Runting Semantics)

    6.1 對象的構造和解構(Object Construction and Destruction)

    全局對象(Global Objects)

    局部靜态對象(Local Static Objects)

    對象數組(Array of Objects)

    Default Constructors和數組

    6.2 new和delete運算符

    針對數組的new語意

    Placement Operator new的語意

    6.3 臨時性對象(Temporary Objects)

    臨時性對象的迷思(神話、傳說)

    第7章 站在對象模型的類端(On the Cusp of the Object Model)

    7.1 Template

    Template的“具現”行為(Template Instantiation)

    Template的錯誤報告(Error Reporting within a Template)

    Template中的名稱決議方式(Name Resolution within a Template)

    Member Function的具現行為(Member Function Instantiation)

    7.2 異常處理(Exception Handling)

    Exception Handling快速檢閱

    對Exception Handling的支援

    7.3 執行期類型識别(Runtime Type Identification,RTTI)

    Type-Safe Downcast(保證安全的向下轉型操作)

    Type-Safe Dynamic Cast(保證安全的動态轉型)

    References并不是Pointers

    Typeid運算符

    7.4 效率有了,彈性呢?

    動态共享函數庫(Dynamic Shared Libraries)

    共享記憶體(Shared Memory)

繼續閱讀