初始化列表及const static修飾成員

2021-09-02 18:16:29 字數 1213 閱讀 8448

初始化順序和初始化列表的順序無關,和成員變數/物件的宣告順序有關。

class test

void show()

private:

int ma;

int mb;

int mc;

};int main()

執行結果為:ma =10;mb = 10;mc = 10; 

常物件不能呼叫普通方法

常物件只能呼叫常方法

普通物件也可以呼叫常方法

普通方法可以呼叫常方法

常方法中不能呼叫普通方法

class test

void show()const //this const test* const

void print() //this test* const

private:

int ma;

int mb;

};int main()

常成員變數:一定要初始化(建構函式的初始化列表中)

class test

void show()

private:

const int ma; //ma必須初始化

int mb;

};int main()

不屬於物件獨享(物件共享)

一定要在類外初始化

不依賴物件訪問

_cdecl,沒有this指標

不能訪問普通成員變數

可以訪問靜態的成員變數和全域性變數

靜態成員方法不能呼叫普通的成員方法

普通成員方法可以呼叫靜態的成員方法

int gdata = 10;

class test

static void show() //_cdecl,無this指標

void print() //thiscall this test* const this

public:

static int ma;

int mb;

};int test::ma = 10;

int main()

初始化 1 預設初始化 列表初始化

初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...

初始化列表

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

初始化列表

初始化列表一般用於建構函式賦值的操作中,它的常用賦值物件有 1 常量 常資料成員只能用初始化列表來初始化 2 引用型別 3 無參建構函式的類的物件。具體格式為 類名 形參表 如int x,int y 成員資料 x 成員資料 y 意思是成員資料繫結x,y。下面以幾個例子來說明一下 一 求圓面積 inc...