質問編集履歴

1

書き間違いを修正しました

2020/11/25 14:41

投稿

gemfighter
gemfighter

スコア38

test CHANGED
File without changes
test CHANGED
@@ -416,92 +416,76 @@
416
416
 
417
417
  //直線用インスタンス(この配列に要素入れる)
418
418
 
419
- shared_ptr<StraightLine> p1(new StraightLine)[2];
419
+ shared_ptr<StraightLine> straightine(new StraightLine)[2];
420
420
 
421
421
 
422
422
 
423
423
  //直線出力用インスタンス
424
424
 
425
- std::vector<std::shared_ptr<Bottom*>> bases;//全部入れるテーブル
425
+ std::vector<std::shared_ptr<Bottom>> bases;//全部入れるテーブル
426
+
426
-
427
+ shared_ptr<StraightLine> straightine2(new StraightLine);
428
+
429
+
430
+
431
+   //ここの処理で入れる
432
+
427
- try {
433
+ for(int i = 0; i < 2; i++){
434
+
428
-
435
+ //インスタンスに値を格納
436
+
437
+ straightine->get(27, 1, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0);
438
+
439
+ straightine->get2(0, 0, 0, 0,0, 0, 0, 0, 0);
440
+
429
- straightine2 = new StraightLine;
441
+ straightine->get3(1);
442
+
443
+ //ベクターに値をプッシュ
444
+
445
+ bases.push_back(straightine);
446
+
447
+
448
+
449
+ //もともとはここでポインタのアドレスをインクリメントしていた。
450
+
451
+
452
+
453
+
430
454
 
431
455
  }
432
456
 
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
433
- catch (std::bad_alloc& e) {
469
+ for (auto it = std::begin(bases); it != std::end(bases); ++it)
470
+
434
-
471
+ {
472
+
435
- // メモリ確保に失敗
473
+ //直線出力
436
-
474
+
437
- std::cout << e.what() << std::endl;
475
+ if (dynamic_cast<StraightLine>(*it) != 0)
476
+
477
+ {
478
+
479
+ straightine2 = dynamic_cast<StraightLine*>(*it);
480
+
481
+ straightine2->LK();
482
+
483
+ }
438
484
 
439
485
  }
440
486
 
441
487
 
442
488
 
443
-   //ここの処理で入れる
444
-
445
- for(int i = 0; i < 2; i++){
446
-
447
- //インスタンスに値を格納
448
-
449
- straightine->get(27, 1, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0);
450
-
451
- straightine->get2(0, 0, 0, 0,0, 0, 0, 0, 0);
452
-
453
- straightine->get3(1);
454
-
455
- //ベクターに値をプッシュ
456
-
457
- bases.push_back(straightine);
458
-
459
-
460
-
461
- //もともとはここでポインタのアドレスをインクリメントしていた。
462
-
463
- *straightine++;
464
-
465
-
466
-
467
- }
468
-
469
-
470
-
471
-
472
-
473
-
474
-
475
-
476
-
477
-
478
-
479
-
480
-
481
- for (auto it = std::begin(bases); it != std::end(bases); ++it)
482
-
483
- {
484
-
485
- //直線出力
486
-
487
- if (dynamic_cast<StraightLine*>(*it) != 0)
488
-
489
- {
490
-
491
- straightine2 = dynamic_cast<StraightLine*>(*it);
492
-
493
- straightine2->LK();
494
-
495
- }
496
-
497
- }
498
-
499
-
500
-
501
- //ここでstraightineとstraightine2をdeleteしたい
502
-
503
-
504
-
505
489
  return 0;
506
490
 
507
491
  }