class中成員變數的初始化

2021-06-14 21:36:31 字數 667 閱讀 4679

在類class的定義中,不同定義方式的成員變數的初始化方式各不一樣。

對於變數的初始化主要分以下幾種情況:

1)普通變數

一般的成員變數的初始化不能在定義是進行初始化的,但此類資料成員是能夠在建構函式中進行初始化的,也能夠在初始化列表中進行初始化。

使用建構函式定義方式如下:

class  test

使用初始化列表的形式定義如下:

class  test

在初始化列表中函式的初始化順序是按照變數的定義順序來初始化的,與初始化列表中變數的執行順序無關。

2)const 成員變數

對於const成員變數不能像普通成員變數一樣在建構函式中進行初始化操作,它只能在初始化列表中進行初始化操作。

class  test

3)static成員變數

對於static成員變數它是屬於類的範疇,不屬於特定物件,既不能在建構函式中進行初始化工作,也不能在初始化列表中進行初始化,只能在類的外面進行定義。

class  test

int test::n1=2;

int test::n2=3;

4)const static型別的成員變數

const static修飾的成員變數是靜態成員變數,只能在定義的時候對其進行初始化。

class test

};

初始化列表成員變數的初始化

對於以下程式 include using namespace std class base base b 0 a b int get a int get b int main 本想得到的結果是a,b都為90。但是實際結果卻是 4273046 90process returned 0 0x0 exec...

C 中成員變數的初始化

類成員變數的初始化對於初學者來說是乙個頭疼的問題,總是記不住 型別應該怎樣進行初始化。為了解決後顧之憂,今天就把類中所有型別的成員變數的初始化做乙個總結。首先,我們來看看c 的類中都有哪幾種型別的成員變數。class test 大概的型別就是這幾類,當然還有其他一些比如 int f int g co...

class中成員變數列表初始化和函式體賦值的區別

類中成員變數在建構函式中無論是列表初始化還是函式體賦值,其最終效果都是一樣的。但是在某些具體細節和效率方面是有所差別的。class的成員變數可以分成兩類 1 內建型別 int char bool等 2 使用者自定義型別 class a a int x,string str private int a...