c 使用初始化列表來初始化字段

2022-02-04 20:10:56 字數 457 閱讀 4444

#includeusing namespace std;

class student1

//student1(int i):b(i),a(b) //異常順序:發現a的值為0 b的值為2 說明初始化僅僅對b有效果,對a沒有起到初始化作用

student1(int a, int b): _a(a), _b(b)

//正常順序:發現a = b = 2 說明兩個變數都是初始化了的

student1() // 無參建構函式

student1(const student1 &t1) //拷貝建構函式

student1 &

operator = (const student1 &t1) // 賦值運算子

};class teacher

};int main(void)

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

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

c 初始化列表

與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。struct foo 初始化列表 建構函式的兩個執行階段 從概念上來講,建構函式的執行可以分成兩個階段,初始化階段和計算階段,初始化階段先於計算階段 初始化階段 所有...

C 初始化列表

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