OOP 初始化列表

2021-10-24 17:15:23 字數 586 閱讀 7609

建構函式:成員變數(初始值)

struct foo

;// 初始化列表

};

是使用初始化列表,

是在建構函式體內進行賦值操作。

使用初始化列表主要是基於效能問題,對於內建型別,如int, float等,使用初始化類表和在建構函式體內初始化差別不是很大,但是對於類型別來說,最好使用初始化列表。

為什麼呢?使用初始化列表少了一次呼叫預設建構函式的過程(直接使用拷貝構造),這對於資料密集型的類來說,是非常高效的。同樣看上面的例子,我們使用初始化列表來實現test2的建構函式

struct test2

}

以下幾種情況時必須使用初始化列表

成員變數的初始化順序

成員是按照他們在類**現的順序進行初始化的,而不是按照他們在初始化列表出現的順序初始化的,看**。

struct foo

;// ok, 先初始化i,後初始化j};

struct foo

// i值未定義因為此時j的值還沒有初始化,不能被用

};

初始化 1 預設初始化 列表初始化

初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...

初始化列表

與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。在c 中,struct和class的唯一區別是預設的克訪問性不同,而這裡我們不考慮訪問性的問題,所以下面的 都以struct來演示。struct foo 初始化列表 ...

初始化列表

初始化列表一般用於建構函式賦值的操作中,它的常用賦值物件有 1 常量 常資料成員只能用初始化列表來初始化 2 引用型別 3 無參建構函式的類的物件。具體格式為 類名 形參表 如int x,int y 成員資料 x 成員資料 y 意思是成員資料繫結x,y。下面以幾個例子來說明一下 一 求圓面積 inc...