質問編集履歴

1

文章を修正

2021/01/27 03:08

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
 
4
4
 
5
+ testクラスの変数aをがeraseを置いていないにも関わらずアクセスエラーを起こします。
5
6
 
7
+ 自分のやりたいことはeraseするとtestクラスのa変数をdeleteするということをやりたいです。
6
8
 
7
9
 
8
10
 
@@ -24,6 +26,32 @@
24
26
 
25
27
 
26
28
 
29
+ class test
30
+
31
+ {
32
+
33
+ public:
34
+
35
+
36
+
37
+ test() {
38
+
39
+
40
+
41
+ };
42
+
43
+
44
+
45
+ ~test() {
46
+
47
+
48
+
49
+ };
50
+
51
+
52
+
53
+ };
54
+
27
55
 
28
56
 
29
57
  class Bullet {
@@ -32,7 +60,9 @@
32
60
 
33
61
 
34
62
 
35
- Bullet(int a ) {
63
+ Bullet(int r) {
64
+
65
+ a = new test();
36
66
 
37
67
  printf("コンストラクタ\n");
38
68
 
@@ -42,9 +72,21 @@
42
72
 
43
73
  ~Bullet() {
44
74
 
75
+ delete a;
76
+
77
+ a = nullptr;
78
+
45
- printf("デストラクタ\n");
79
+ printf("--- デストラクタ\n");
46
80
 
47
81
  }
82
+
83
+
84
+
85
+ private:
86
+
87
+
88
+
89
+ test* a;
48
90
 
49
91
 
50
92
 
@@ -58,13 +100,17 @@
58
100
 
59
101
  {
60
102
 
103
+ Bullet b(1);
104
+
105
+
106
+
61
107
  std::vector<Bullet> bullet;
62
108
 
63
109
  bullet.push_back(Bullet(1));
64
110
 
65
111
 
66
112
 
67
-
113
+ // bullet.erase(bullet.begin());
68
114
 
69
115
 
70
116
 
@@ -86,4 +132,6 @@
86
132
 
87
133
 
88
134
 
135
+
136
+
89
137
  ```