C++11講座7回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
第7回は初期化リストです。
C++11では初期化リストの登場によりあらゆる初期化が{}で統一...
1: #include <vector>
2: #include <iostream>
3:
4: using namespace std;
5:
6: struct Hoge
7: {
8: int arr[3];
9: Hoge(int n, char* s) : arr{1, 2, 3}//配列メンバ変数...
10: {
11: }
12: };
13:
14: vector<int> create_Vec()
15: {
16: return{ 1, 2, 3 };//戻り値としてもOK
17: }
18:
19: int sum(vector<int> vec)
20: {
21: int sum = 0;
22: for (auto i : vec)
23: {
24: sum += i;
25: }
26:
27: return sum;
28: }
29:
30: int main()
31: {
32: Hoge hoge1(1, "Hello");//従来
33:
34: Hoge hoge2{2, "Hello"};//これでも可能に
35: Hoge hoge3 = {2, "Hello" };//これもOK
36:
37: vector<int> vec1{0, 1, 2, 3, 4};//コンテナの初期化も...
38: vector<int> vec2 = {0, 1, 2, 3, 4};//もちろんこれもOK
39: vector<int> vec3 = create_Vec();
40:
41: //引数もOK
42: cout << sum({1, 2, 3, 4, 5}) << endl;
43:
44: return 0;
45: }
これによる記述の統一が出来て綺麗になります。
ユーザー定義のクラスに初期化リストを使用する場合はinitial...
1: #include <initializer_list>
2:
3: using namespace std;
4:
5: class Hoge
6: {
7: public:
8: Hoge(initializer_list<int> list) {}
9: };
10:
11: int main()
12: {
13: //{}での初期化が可能に!
14: Hoge hoge1{ 1, 2, 3, 4, 5 };
15: Hoge hoge2 = { 1, 2, 3 };
16:
17: return 0;
18: }
また、インスタンス生成でデフォルトコンストラクタを()で呼...
1: struct Hoge
2: {
3: };
4:
5: int main()
6: {
7: Hoge hoge1();//関数宣言?
8: Hoge hoge2{};//これなら曖昧にならない!
9:
10: return 0;
11: }
初期化リストが出たことにより、文法の統一やコンテナの初期...
文法として出来ることが増えるのがメインの機能なので使うの...
以上で初期化リストの説明を終わります。
前→C++11講座6回
次→C++11講座8回
#vote(世界のC++[1],これマジ?[0],ムズすぎィ![0])
終了行:
第7回は初期化リストです。
C++11では初期化リストの登場によりあらゆる初期化が{}で統一...
1: #include <vector>
2: #include <iostream>
3:
4: using namespace std;
5:
6: struct Hoge
7: {
8: int arr[3];
9: Hoge(int n, char* s) : arr{1, 2, 3}//配列メンバ変数...
10: {
11: }
12: };
13:
14: vector<int> create_Vec()
15: {
16: return{ 1, 2, 3 };//戻り値としてもOK
17: }
18:
19: int sum(vector<int> vec)
20: {
21: int sum = 0;
22: for (auto i : vec)
23: {
24: sum += i;
25: }
26:
27: return sum;
28: }
29:
30: int main()
31: {
32: Hoge hoge1(1, "Hello");//従来
33:
34: Hoge hoge2{2, "Hello"};//これでも可能に
35: Hoge hoge3 = {2, "Hello" };//これもOK
36:
37: vector<int> vec1{0, 1, 2, 3, 4};//コンテナの初期化も...
38: vector<int> vec2 = {0, 1, 2, 3, 4};//もちろんこれもOK
39: vector<int> vec3 = create_Vec();
40:
41: //引数もOK
42: cout << sum({1, 2, 3, 4, 5}) << endl;
43:
44: return 0;
45: }
これによる記述の統一が出来て綺麗になります。
ユーザー定義のクラスに初期化リストを使用する場合はinitial...
1: #include <initializer_list>
2:
3: using namespace std;
4:
5: class Hoge
6: {
7: public:
8: Hoge(initializer_list<int> list) {}
9: };
10:
11: int main()
12: {
13: //{}での初期化が可能に!
14: Hoge hoge1{ 1, 2, 3, 4, 5 };
15: Hoge hoge2 = { 1, 2, 3 };
16:
17: return 0;
18: }
また、インスタンス生成でデフォルトコンストラクタを()で呼...
1: struct Hoge
2: {
3: };
4:
5: int main()
6: {
7: Hoge hoge1();//関数宣言?
8: Hoge hoge2{};//これなら曖昧にならない!
9:
10: return 0;
11: }
初期化リストが出たことにより、文法の統一やコンテナの初期...
文法として出来ることが増えるのがメインの機能なので使うの...
以上で初期化リストの説明を終わります。
前→C++11講座6回
次→C++11講座8回
#vote(世界のC++[1],これマジ?[0],ムズすぎィ![0])
ページ名: