理論實踐 c 11初始化列表使用

2021-08-03 21:27:11 字數 765 閱讀 3760

1、用於初始化物件,避免定義僅賦值的建構函式。注意,如果定義了任意乙個建構函式,將不再合成預設建構函式,需要顯示定義。

class a

;int main()

; //等價於定義a(int ia, int ib, int ic): a(ia), b(ib), c(ic) {}

a a2 = ; //同上

a b; //等價於定義a(int ia, int ib): a(ia), b(ib) {}

a b2 = ; //同上

return 0;

}

2、各種變數賦初值

int r1 = ;

int r2;

vectorv1 = ;

vectorv2;

string s1;

int abc = ;

3、函式預設引數

typedef void (*fun_t)();

void fun(fun_t callback = {}, int p1 = {}, vectorp2 = {})

4、函式返回值

vectorfun1()

; return vector;

}int fun2()

; return ;

}a fun3()

;}

5、其他待補充

C 11之列表初始化

c 98使用 對陣列初始化 int arr int arr 4 但對於自定義型別會報錯 vectorv 內建型別 int x1 int x2 int x3 1 2 int x4 int x5 陣列 int arr1 5 int arr2 動態陣列 c 98不支援 int arr3 new int 5...

C 11 就地初始化與列表初始化

在 c 11 之前,只能對結構體或類的靜態常量成員進行就地初始化,其他的不行。class c class c or int b c 11 only int c 7 error 注意,小括號初始化方式不能用於就地初始化。c 11 支援了就地初始化非靜態資料成員的同時,初始化列表的方式也被保留下來,也就...

c 11 就地初始化與列表初始化

還可以看看 在c 11之前,只能對結構體或類的靜態常量成員進行就地初始化,其他的不行。class c class c 或int b c 11 only int c 7 error 1.2就地初始化與初始化列表的先後順序 c 11標準支援了就地初始化非靜態資料成員的同時,初始化列表的方式也被保留下來,...