質問編集履歴

1

d

2020/11/27 11:47

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
File without changes
test CHANGED
@@ -109,3 +109,103 @@
109
109
 
110
110
 
111
111
  ```
112
+
113
+
114
+
115
+ ## 解決方法
116
+
117
+
118
+
119
+ 教えていただいた内容をもとに以下のように修正しました。
120
+
121
+ ご回答ありがとうございました。
122
+
123
+
124
+
125
+ ```cpp
126
+
127
+ #include <algorithm>
128
+
129
+ #include <iostream>
130
+
131
+ #include <vector>
132
+
133
+
134
+
135
+ class MyClass
136
+
137
+ {
138
+
139
+ public:
140
+
141
+ MyClass()
142
+
143
+ {
144
+
145
+ initliaze();
146
+
147
+ }
148
+
149
+
150
+
151
+ // プログラム起動時に呼び出してほしい関数
152
+
153
+ static void initliaze()
154
+
155
+ {
156
+
157
+ if (!table1.empty())
158
+
159
+ return; // 初期化済み
160
+
161
+
162
+
163
+ make_table(table1);
164
+
165
+ make_table(table2);
166
+
167
+ }
168
+
169
+
170
+
171
+ static void make_table(std::vector<size_t> &table)
172
+
173
+ {
174
+
175
+ table.resize(10);
176
+
177
+ for (size_t i = 0; i < 10; i++)
178
+
179
+ table[i] = i;
180
+
181
+ }
182
+
183
+
184
+
185
+ static std::vector<size_t> table1;
186
+
187
+ static std::vector<size_t> table2;
188
+
189
+ };
190
+
191
+
192
+
193
+ std::vector<size_t> MyClass::table1;
194
+
195
+ std::vector<size_t> MyClass::table2;
196
+
197
+
198
+
199
+ static MyClass inst;
200
+
201
+
202
+
203
+ int main(int, char **)
204
+
205
+ {
206
+
207
+ std::cout << MyClass::table1[3] << std::endl;
208
+
209
+ }
210
+
211
+ ```