C 初始化列表

2021-09-19 17:09:09 字數 829 閱讀 6429

car類中,包含type物件,這個type物件該怎樣初始化?

試試在car的建構函式中初始化

#include #include using namespace std;

class type

~type()

type(int radius)

};class car

};int main()

初始化列表就是為了解決重複建立物件的問題

下面採用初始化列表的方式建立物件

car(int radius) : type(radius)
類名::建構函式(參數列):成員變數1(參數列), 成員變數2(參數列), ... 

// type是成員變數,type(radius)相當於呼叫type(radius)

car::car(int radius) : type(radius)

// 基礎型別也可以採用這樣的方式

car::car(int radius, int price) : type(radius), price(price)

封閉類:包含成員物件的類

#include #include using namespace std;

class tyre

~tyre()

};class engine

~engine()

};class car

~car()

};int main()

參考:c++程式設計 3.3.2 成員物件和封閉類的概念

c 初始化列表

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

C 初始化列表

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

C 初始化列表

與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。struct foo 初始化列表 建構函式的執行可以分成兩個階段,初始化階段和計算階段,初始化階段先於計算階段。所有類型別 class type 的成員都會在初始化階...