類成員變數的初始化方式有兩種: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...