C 學習筆記之建構函式(二)初始化列表

2022-04-29 14:03:06 字數 720 閱讀 4030

類成員變數的初始化方式有兩種:1.初始化列表  2.建構函式的函式體中賦值

1)對於普通的資料成員(如int、char、指標等)

class animal

private:

double m_weight;

double m_height;

public:

animal(int weight,int height):m_weight(weight),m_height(height) //建構函式1,使用初始化列表進行初始化

animal(int weight,int height) //建構函式2,在函式體內賦值

m_weight = weight;

m_height = height;

對於普通的資料成員,建構函式1和建構函式2的方式基本沒有什麼差異,但是乙個類中1、2只能出現乙個。

對於const型別和&引用型別的資料成員,其初始化必須使用初始化列表的方式進行初始化。

2)無缺省建構函式的繼承關係中

class parent

};class child:public parent

}解決方法:

1.給父類顯式的定義乙個無參的預設建構函式

parent()

2.child類通過初始化列表傳遞引數給parent

child(int weight,int height,int type):parent(weight,height)

C 建構函式初始化列表學習筆記

參考鏈結進行詳細學習 感謝該博文博主提供優秀的學習資源。1 建構函式執行過程分成兩個階段分別為初始化階段和計算階段。2 只有建構函式才具備使用初始化列表的功能,其他的函式不具備這個功能。3 初始化列表對成員變數的初始化順序與列表中變數的生命順序無關,和類中成員變數的宣告順序一致。3 什麼情況下使用建...

(C )建構函式初始化

vc 中的對於類的定義是有很大的不同。例如在.net程式中對於需要初始化的引數可以直接的賦值,而在vc 中對於需要初始化的引數則需要使用不同的方法。例如對於char字元則需要使用strcpy s函式賦值而相反對於布林型別 bool 整數型別 int 則可以使用運算子 對其初始化。1.定義乙個帶有引數...

C 建構函式初始化

建構函式後面增加冒號一般有三種作用 1 對成員變數的初始化 2 對類成員物件初始化 3 對父類進行初始化 include include using namespace std class a int get key int main 答案 class a 類物件初始化 int get key in...