第二章 建構函式

2021-06-27 15:48:32 字數 1531 閱讀 7881

default constructor的構造操作:

什麼時候才會合成乙個default construct

,當編譯器需要它的時候,此外,被合成出來的

construct

只執行編譯器所需要的行動。

nontivial default constructor的

4種情況:

1.帶有

default constructor

的member class object

編譯器如何避免合成多個default constructor 

以inline

方式完成。乙個

inline

函式有靜態鏈結,不會被檔案以外者看到,如果太複雜就會合成乙個

explicit non-inline static

例項。

編譯器會擴張constructor

在user code

被執行之前,先呼叫必要的

default constructor,

以members

宣告的順序呼叫。

2.帶有

default constructor

的base class

3.帶有乙個

virtual function

的class:

class宣告乙個

virtual function,

class 派生乙個繼承串鏈,其中乙個或更多的

virtual base classes

在合成的default constructor

中,只有

base class subobjects

和members class objects

會被初始化。所有其他的

nonstatic data member

都不會被初始化。如果程式設計師需要把某個指標設為0的

default constructor

,那麼提供它的應該是程式設計師。

copy constructor4個條件和上面內似。

深拷貝與淺拷貝:關於動態記憶體時注意定義。

default memberwise initialization

當class obeject

以相同class

的另乙個

object

作為初值,其內部是以所謂的

default memberwise initialization

手法完成的,也就是把每乙個內建的或派生的

data member

的值,從某個

object

拷貝乙份到另乙個

object

身上。不過它並不拷貝其中的

members class object

,而是以遞迴的方式實行。

bitwise copy semantics(淺拷貝)

nrv 

list中的專案順序是由

class

中的members

宣告決定的,不是由

list

中排序決定的。

第二章 函式

bool check int n 判斷是否為質數 int arr 15 15 為0 為1 int sum 號個數 int num 0 滿足題意的圖形數 int n int i,j void prin int n sum 0 for i 0 i n i for j 0 j n i j if arr i...

軟體構造第二章隨筆

1.瀑布模型 要求 設計 實現 驗證 維護 2.增量模型 以增量的方式實施瀑布模型 通常首先實現優先順序最高的需求 當某增量開發完成,則對應的需求被凍結 3.v模型 強調了瀑布模型的測試環節 4原型法 先實現乙個系統原型,模擬最終的幾個方面,甚至完全不同,細節問題可以忽略。在專案早期可以獲得使用者的...

第二章 構造和執行模組(筆記)

如果讀者正在編寫乙個只適用於某特定發行版的驅動程式,則應該針對相關核心建立和測試自己的驅動程式。2.6.x核心構造模組,必須在自己的系統中配置並構造好核心樹 因為2.6核心的模組要和核心源 樹中的目標檔案連線 先前的核心只需要一套核心標頭檔案就夠了。module license用來告訴核心,該模組採...