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