在類class的定義中,不同定義方式的成員變量的初始化方式各不一樣。
對於變量的初始化主要分以下幾種情況:
1)普通變量
一般的成員變量的初始化不能在定義是進行初始化的,但此類數據成員是能夠在構造函數中進行初始化的,也能夠在初始化列表中進行初始化。
使用構造函數定義方式如下:
class test{
public:
int n1,n2;
test(){
n1=2;
n2=3;
}
};
使用初始化列表的形式定義如下:
class test{public:
int n1,n2;
test():n1(2),n2(3){
}
};
在初始化列表中函數的初始化順序是按照變量的定義順序來初始化的,與初始化列表中變量的執行順序無關。
2)const 成員變量
對於const成員變量不能像普通成員變量一樣在構造函數中進行初始化操作,它只能在初始化列表中進行初始化操作。
class test{
public:
const int n1,n2;
test():n1(2),n2(3){
}
};
3)static成員變量
對於static成員變量它是屬於類的範疇,不屬於特定對象,既不能在構造函數中進行初始化工作,也不能在初始化列表中進行初始化,只能在類的外面進行定義。
class test{
public:
static int n1,n2;
test(){
}
};
int test::n1=2; int test::n2=3;
4)const static類型的成員變量
const static修飾的成員變量是靜態成員變量,只能在定義的時候對其進行初始化。
class test{
public:
const static int n1=2,n2=3;
public:
test(){
}
};