深入探索C 物件模型

2021-10-10 05:02:21 字數 4049 閱讀 3185

深入探索c++物件模型

本書目錄結構如下:

第1章 關於物件(object lessons)

加上封裝後的布局成本(layout costs for adding encapsulation)

1.1 c++模式模式(the c++ object model)

簡單物件模型(a ****** object model)

**驅動物件模型(a table-driven object model)

c++物件模型(the c++ object model)

物件模型如何影響程式(how the object model effects programs)

策略性正確的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) [2]

深入探索C 物件模型之物件

物件 一 在c語言中,資料 和 對資料的處理 函式 分開宣告的,也就是說,語言本身並沒有支援 資料和函式 之間的關聯性。例如,typedef struct point3dpoint3d 而在c 中,座標型別和座標數目都可以引數化 template class point type operator ...

深入探索C 物件模型(6)

物件陣列的構造 物件資料的構造一般有兩種方式 靜態和動態 1 靜態分配 以string類為例,string a 10 就是以靜態形式構造資料,這樣的陣列的個數是確定的不能修改的。像這樣的陣列怎麼進行構造和析構呢?編譯器在構造陣列的時候會生成乙個使用預設建構函式的陣列建構函式arr new char ...

深入探索C 物件模型 七 構造

三個重要函式 建構函式,析構函式,拷貝建構函式。1.無繼承情況下的物件構造。當類中存在虛函式時,編譯器會對該類產生膨脹作用,例如如下類 cpp view plain copy class point virtual float z protected float x,y a.我們所定義的建構函式中,...