質問編集履歴

1

コンパイルが通らない可能性をご指摘頂きましたので、元のコードも追記致しました。

2018/04/08 11:43

投稿

GuielNo4
GuielNo4

スコア88

test CHANGED
File without changes
test CHANGED
@@ -159,3 +159,91 @@
159
159
 
160
160
 
161
161
  宜しくお願い申し上げます。
162
+
163
+
164
+
165
+ ### 追記
166
+
167
+ 「動的な方のソースではコンパイルが通らないのでは?」とのご指摘がありました。
168
+
169
+ 私の質問内容が中途半端でしたのでこのようなご指摘になったのかと思いますので、
170
+
171
+ 元々の動的な方のコードも記します。
172
+
173
+ ```
174
+
175
+ class base
176
+
177
+ {
178
+
179
+ private:
180
+
181
+ int number;
182
+
183
+ public:
184
+
185
+ base( int number ) : number( number ) { }
186
+
187
+ virtual void display() { printf( "base %d.\n", number ); }
188
+
189
+ };
190
+
191
+
192
+
193
+ class derived : public base
194
+
195
+ {
196
+
197
+ private:
198
+
199
+ int number;
200
+
201
+ public:
202
+
203
+ derived( int number ) : base( number ), number( number ) { }
204
+
205
+ void display() { printf( "derived %d.\n", number ); }
206
+
207
+ };
208
+
209
+
210
+
211
+ static base* pTable[] =
212
+
213
+ {
214
+
215
+ new base( 0 ),
216
+
217
+ new base( 1 ),
218
+
219
+ new derived( 2 ),
220
+
221
+ new derived( 3 ),
222
+
223
+ };
224
+
225
+
226
+
227
+ #define TABLE_SIZE sizeof( pTable ) / sizeof( pTable[0] )
228
+
229
+
230
+
231
+ void Display()
232
+
233
+ {
234
+
235
+ for ( int arrayIndex = 0; arrayIndex < TABLE_SIZE; arrayIndex++ )
236
+
237
+ {
238
+
239
+ base* pBase = pTable[arrayIndex];
240
+
241
+ pBase->display();
242
+
243
+ }
244
+
245
+ }
246
+
247
+ ```
248
+
249
+ 中途半端な書き方で失礼しました...