C Primer 第19章 知識點回顧

2021-07-16 15:04:26 字數 1135 閱讀 2440

19.1控制記憶體分配

new過程:一、operator new標準庫函式,分配原始未構造記憶體;二、編譯器執行相應建構函式;三、返回指標

operator delete釋放記憶體空間

定位new: new (place_address) type (initializers),

呼叫析構函式會銷毀物件,但是不會釋放記憶體

19.2 執行時型別識別

dynamic_cast:用於將基類的指標或引用安全的轉換成派生類的指標或引用

typeid:返回表示式的型別

以上兩個運算子特別適用於以下情況:我們想使用基類物件的指標或引用執行某個派生類操作並且該操作不是虛函式。一般來說應該盡量使用虛函式。然而,並非任何時候都能定義乙個虛函式。當無法使用虛函式時,使用rtti運算子。**

19.3 列舉型別

列舉型別使我們可以將一組整型常量組織在一起,每個列舉型別定義了一種新的型別。列舉屬於字面值常量型別

不限定作用域的列舉型別中,列舉成員的作用域於列舉型別本身的作用域相同

預設情況下,列舉值從0開始,依次加1

列舉成員是const,因此初始化列舉成員是提供的初始值必須是常量表示式

乙個不限定作用域的列舉型別的物件或列舉成員自動第轉換成整型int i=color::red;要想初始化enum物件或者為enum物件賦值,必須使用該型別的乙個列舉成員或者該型別的另乙個物件

19.4 類成員指標

一般情況下,指標指向乙個物件,但是成員指標指示的是類的成員,而非類的物件

19.5 巢狀類

1. 乙個類可以定義在另乙個類的內部,前者稱為巢狀類

19.7 區域性類

類可以定義在某個函式的內部,我們成這樣的類為區域性類

19.8固有的不可移植的特性

volatile限定符:和const類似。。。

C Primer 第9章 知識點回顧

9.2.3 begin和end成員 實際上有兩個名為begin的成員,乙個是const成員,返回const iterator,另乙個是非常量成員,返回iterator,構成過載 auto it a.begin 僅當a是const,it是const iterator 9.2.4 定義和初始化 只有順序...

C Primer 第13章 知識點回顧

13.1.1 拷貝建構函式 直接初始化 根據引數選擇最匹配的建構函式 拷貝初始化 使用拷貝建構函式或移動建構函式來完成,要求編譯器將右側運算物件拷貝到正在建立的物件中,如果需要的話還要進行型別轉換 foo const foo 宣告拷貝建構函式有explicit建構函式的物件只能使用直接初始化 如果我...

C primer 注意的知識點(第 章)

1 從邏輯上來講,size 成員函式似乎應該返回整形數值,或如 2.2節 建議 中所述的無符號整數。但事實上,size 操作返回的是 string size type 型別的值。我們需要對這種型別做一些解釋。string 類型別和許多其他庫型別都定義了一些配套型別 companion type 通過...