回答編集履歴
4
コメント削除
test
CHANGED
@@ -48,8 +48,6 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
-
public:
|
52
|
-
|
53
51
|
Test():array{} { }
|
54
52
|
|
55
53
|
};
|
@@ -58,11 +56,7 @@
|
|
58
56
|
|
59
57
|
int main() {
|
60
58
|
|
61
|
-
|
62
|
-
|
63
59
|
const size_t array_size = 10;
|
64
|
-
|
65
|
-
// class Testで作った配列(0で初期化されていない出力となる)
|
66
60
|
|
67
61
|
Test<array_size> test;
|
68
62
|
|
3
コード修正
test
CHANGED
@@ -66,7 +66,7 @@
|
|
66
66
|
|
67
67
|
Test<array_size> test;
|
68
68
|
|
69
|
-
for (size_t i = 0; i <
|
69
|
+
for (size_t i = 0; i < test.MAX; i++) {
|
70
70
|
|
71
71
|
std::cout << test.array[i] << " ";
|
72
72
|
|
2
コード追記
test
CHANGED
@@ -27,3 +27,53 @@
|
|
27
27
|
}
|
28
28
|
|
29
29
|
```
|
30
|
+
|
31
|
+
---
|
32
|
+
|
33
|
+
`vector`も`new`も使わないならtemplateですかね。
|
34
|
+
|
35
|
+
```C++
|
36
|
+
|
37
|
+
#include <iostream>
|
38
|
+
|
39
|
+
template<size_t size>
|
40
|
+
|
41
|
+
class Test {
|
42
|
+
|
43
|
+
public:
|
44
|
+
|
45
|
+
enum {MAX = size};
|
46
|
+
|
47
|
+
long long int array[MAX];//sizeでもいいが後から要素数を使うかもしれないので一旦MAXに入れておく
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
public:
|
52
|
+
|
53
|
+
Test():array{} { }
|
54
|
+
|
55
|
+
};
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
int main() {
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
const size_t array_size = 10;
|
64
|
+
|
65
|
+
// class Testで作った配列(0で初期化されていない出力となる)
|
66
|
+
|
67
|
+
Test<array_size> test;
|
68
|
+
|
69
|
+
for (size_t i = 0; i < array_size; i++) {
|
70
|
+
|
71
|
+
std::cout << test.array[i] << " ";
|
72
|
+
|
73
|
+
}
|
74
|
+
|
75
|
+
std::cout << std::endl;
|
76
|
+
|
77
|
+
}
|
78
|
+
|
79
|
+
```
|
1
指摘追加
test
CHANGED
@@ -15,3 +15,15 @@
|
|
15
15
|
```
|
16
16
|
|
17
17
|
としても確保されません。
|
18
|
+
|
19
|
+
その為以下は範囲外アクセスとなります。
|
20
|
+
|
21
|
+
```C++
|
22
|
+
|
23
|
+
for (int i = 0; i < array_size; i++) {
|
24
|
+
|
25
|
+
std::cout << test.array[i] << " ";
|
26
|
+
|
27
|
+
}
|
28
|
+
|
29
|
+
```
|