質問編集履歴

2

タイトルの詳細化

2021/11/29 06:36

投稿

tokotaku
tokotaku

スコア63

test CHANGED
@@ -1 +1 @@
1
- C++ンスタンスについて
1
+ メンバ変数初期化を定義時にやるかコンストラクでやるか
test CHANGED
File without changes

1

具体例をコード付きで追記しました

2021/11/29 06:36

投稿

tokotaku
tokotaku

スコア63

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,69 @@
2
2
 
3
3
 
4
4
 
5
- インスタンスをヘッダファイル内で初期化することと、コンストラクタ等で初期化することに違いはあるのでしょうか?
5
+ インスタンスをヘッダファイル内で初期化することと、コンストラクタ等で初期化することに違いはあるのでしょうか?
6
+
7
+
8
+
9
+ 例えば、MyClassA、MyClassB、MyClassCがあるとします。(それぞれのクラスの処理内容は省略します。)
10
+
11
+ MyClassBとMyClassCをMyClassAで利用するためにインスタンス化をする場合
12
+
13
+
14
+
15
+ MyClassA.h
16
+
17
+ ```
18
+
19
+ #include "MyClassB.h"
20
+
21
+ #include "MyClassC.h"
22
+
23
+
24
+
25
+ class MyClassA
26
+
27
+ {
28
+
29
+ public:
30
+
31
+ MyClassA();
32
+
33
+ private:
34
+
35
+ MyClassB* myClassB = new MyClassB(this); //ここで先に初期化
36
+
37
+
38
+
39
+ MyClassC* myClassC; //宣言だけしてcpp内で初期化
40
+
41
+ }
42
+
43
+ ```
44
+
45
+
46
+
47
+ MyClassA.cpp
48
+
49
+ ```
50
+
51
+ #include "MyClassC.h"
52
+
53
+
54
+
55
+ MyClassA::MyClassA(){
56
+
57
+ myClassC = new MyClassC(this);
58
+
59
+ }
60
+
61
+ ```
62
+
63
+
64
+
65
+ このMyClassBとMyClassCのインスタンスの初期化方法の違いでどちらが良いなどはあるのでしょうか?
66
+
67
+
6
68
 
7
69
  様々なソースコードを読んでいると、ヘッダ内でインスタンス化と同時に行っているものもあればソース内で行っているものもありました。
8
70