回答編集履歴
3
メンバ初期化子リストの例をもうちょっと明確に提示
answer
CHANGED
|
@@ -52,4 +52,4 @@
|
|
|
52
52
|
[追記1]
|
|
53
53
|
|
|
54
54
|
dameoさんのアドバイスもありますね。(最近C++使ってなかったので失念していました。)
|
|
55
|
-
メンバ初期化子リストを使えばnew/deleteを使わなくともコピーコンストラクタが働くので``member_B(ClassB(n))``のようにもできると思います。
|
|
55
|
+
メンバ初期化子リストを使えばnew/deleteを使わなくともコピーコンストラクタが働くので``ClassA(int n) : member_B(ClassB(n)){}``のようにもできると思います。
|
2
追記1
answer
CHANGED
|
@@ -45,4 +45,11 @@
|
|
|
45
45
|
|
|
46
46
|
ただモダンなC++の場合は生のポインタを使わずにスマートポインタ( std::unique_ptr, std::shared_ptr等 ) を使うらしいですが。
|
|
47
47
|
|
|
48
|
-
余談ですが、``ClassB(int n) {/*処理*/ };``の末尾にあるセミコロンは要りませんよ。
|
|
48
|
+
余談ですが、``ClassB(int n) {/*処理*/ };``の末尾にあるセミコロンは要りませんよ。
|
|
49
|
+
|
|
50
|
+
----
|
|
51
|
+
|
|
52
|
+
[追記1]
|
|
53
|
+
|
|
54
|
+
dameoさんのアドバイスもありますね。(最近C++使ってなかったので失念していました。)
|
|
55
|
+
メンバ初期化子リストを使えばnew/deleteを使わなくともコピーコンストラクタが働くので``member_B(ClassB(n))``のようにもできると思います。
|
1
余談
answer
CHANGED
|
@@ -43,4 +43,6 @@
|
|
|
43
43
|
|
|
44
44
|
みたいにしてnew/deleteを使って動的に生成する。ClassAのデストラクタが動く前までにmember_Bが破棄されている可能性も処理によってはあり得るのでif文とかで「member_Bが破棄されていなければ破棄する」とかみたいにする場合も。
|
|
45
45
|
|
|
46
|
-
ただモダンなC++の場合は生のポインタを使わずにスマートポインタ( std::unique_ptr, std::shared_ptr等 ) を使うらしいですが。
|
|
46
|
+
ただモダンなC++の場合は生のポインタを使わずにスマートポインタ( std::unique_ptr, std::shared_ptr等 ) を使うらしいですが。
|
|
47
|
+
|
|
48
|
+
余談ですが、``ClassB(int n) {/*処理*/ };``の末尾にあるセミコロンは要りませんよ。
|