回答編集履歴

3

ちょっとだけコード変更

2017/09/03 14:16

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  template<typename T>
38
38
 
39
- T input(const std::string &message) {
39
+ T input(const std::string& message) {
40
40
 
41
41
  T ret;
42
42
 
@@ -76,25 +76,23 @@
76
76
 
77
77
 
78
78
 
79
- class Hoge
79
+ class Hoge {
80
-
81
- {
82
80
 
83
81
  private:
84
82
 
85
- int hogeA_;
83
+ const int hogeA_;
86
-
84
+
87
- int hogeB_;
85
+ const int hogeB_;
88
86
 
89
87
 
90
88
 
91
89
  public:
92
90
 
93
- Hoge(void) {
91
+ Hoge(void)
94
-
92
+
95
- hogeA_ = py_like_io::input<int>("Input a: ");
93
+ : hogeA_(py_like_io::input<int>("Input a: ")),
96
-
94
+
97
- hogeB_ = py_like_io::input<int>("Input b: ");
95
+ hogeB_(py_like_io::input<int>("Input b: ")) {
98
96
 
99
97
  }
100
98
 
@@ -106,9 +104,9 @@
106
104
 
107
105
 
108
106
 
109
- inline int getHogeA(void) const { return hogeA_; }
107
+ inline int getHogeA(void) const noexcept { return hogeA_; }
110
-
108
+
111
- inline int getHogeB(void) const { return hogeB_; }
109
+ inline int getHogeB(void) const noexcept { return hogeB_; }
112
110
 
113
111
 
114
112
 

2

実行結果の追加

2017/09/03 14:16

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -170,6 +170,38 @@
170
170
 
171
171
 
172
172
 
173
+ ```
174
+
175
+ 実行結果
176
+
177
+ 回数 => 3
178
+
179
+ Set params 0 th Hoge.
180
+
181
+ Input a: 1
182
+
183
+ Input b: 2
184
+
185
+ Set params 1 th Hoge.
186
+
187
+ Input a: 4
188
+
189
+ Input b: 3
190
+
191
+ Set params 2 th Hoge.
192
+
193
+ Input a: 7
194
+
195
+ Input b: 8
196
+
197
+ sumA is 12
198
+
199
+ sumB is 13
200
+
201
+ ```
202
+
203
+
204
+
173
205
  なんかもう好き放題やっています。読み捨ててください。
174
206
 
175
207
  最近Pythonをよくいじるので、Python-likeなIO関数も勝手に追加。

1

覚えていました。

2017/09/03 13:33

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -13,3 +13,169 @@
13
13
  cat::dog()で変数cat::sumを計算して、それを返す設計の方が良いのかもしれませんが。
14
14
 
15
15
  ...catクラスにメンバ関数dogがあるのは突っ込んじゃいけないですよね。
16
+
17
+
18
+
19
+ ---
20
+
21
+ 覚えていました。
22
+
23
+ ```C++
24
+
25
+ #include <cstdlib>
26
+
27
+ #include <iostream>
28
+
29
+ #include <string>
30
+
31
+ #include <vector>
32
+
33
+
34
+
35
+ namespace py_like_io {
36
+
37
+ template<typename T>
38
+
39
+ T input(const std::string &message) {
40
+
41
+ T ret;
42
+
43
+ std::cout << message;
44
+
45
+ std::cin >> ret;
46
+
47
+ return ret;
48
+
49
+ }
50
+
51
+
52
+
53
+ template<typename T>
54
+
55
+ void print(const T& arg) {
56
+
57
+ std::cout << arg << std::endl;
58
+
59
+ }
60
+
61
+ template<typename First, typename... Rest>
62
+
63
+ void print(const First& first, const Rest&... rest) {
64
+
65
+ std::cout << first << " ";
66
+
67
+ print(rest...);
68
+
69
+ }
70
+
71
+ }
72
+
73
+
74
+
75
+ namespace mol {
76
+
77
+
78
+
79
+ class Hoge
80
+
81
+ {
82
+
83
+ private:
84
+
85
+ int hogeA_;
86
+
87
+ int hogeB_;
88
+
89
+
90
+
91
+ public:
92
+
93
+ Hoge(void) {
94
+
95
+ hogeA_ = py_like_io::input<int>("Input a: ");
96
+
97
+ hogeB_ = py_like_io::input<int>("Input b: ");
98
+
99
+ }
100
+
101
+ Hoge(int a, int b)
102
+
103
+ : hogeA_(a), hogeB_(b) {
104
+
105
+ }
106
+
107
+
108
+
109
+ inline int getHogeA(void) const { return hogeA_; }
110
+
111
+ inline int getHogeB(void) const { return hogeB_; }
112
+
113
+
114
+
115
+ void printInfo(void) const {
116
+
117
+ py_like_io::print(getHogeA(), getHogeB());
118
+
119
+ }
120
+
121
+ };
122
+
123
+ }
124
+
125
+
126
+
127
+ int main(int argc, char** argv)
128
+
129
+ {
130
+
131
+ int count = py_like_io::input<int>("回数 => ");
132
+
133
+ std::vector<mol::Hoge> hogeVec;
134
+
135
+ hogeVec.reserve(count);
136
+
137
+
138
+
139
+ for(int i = 0; i < count; i++) {
140
+
141
+ py_like_io::print("Set params", i, "th Hoge.");
142
+
143
+ hogeVec.emplace_back(mol::Hoge());
144
+
145
+ }
146
+
147
+
148
+
149
+ int sumA = 0, sumB = 0;
150
+
151
+ for(const auto& hoge: hogeVec) {
152
+
153
+ sumA += hoge.getHogeA();
154
+
155
+ sumB += hoge.getHogeB();
156
+
157
+ }
158
+
159
+ py_like_io::print("sumA is", sumA);
160
+
161
+ py_like_io::print("sumB is", sumB);
162
+
163
+
164
+
165
+ return EXIT_SUCCESS;
166
+
167
+ }
168
+
169
+ ```
170
+
171
+
172
+
173
+ なんかもう好き放題やっています。読み捨ててください。
174
+
175
+ 最近Pythonをよくいじるので、Python-likeなIO関数も勝手に追加。
176
+
177
+
178
+
179
+ わからない部分は聞いてください。
180
+
181
+ また、すごい人にはご批判をいただけるとこちらも勉強になります。