質問編集履歴
1
補足説明の追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -67,4 +67,22 @@
|
|
|
67
67
|
##質問
|
|
68
68
|
m_pTxtWriterをコンストラクタで実体化すると、それぞれのclassAで実体を持つことになるので、上記の実装は良くないということは分かるのですが、どのように実装したら良いのか分かりません。
|
|
69
69
|
|
|
70
|
-
良い実装方法を教えていただけないでしょうか。
|
|
70
|
+
良い実装方法を教えていただけないでしょうか。
|
|
71
|
+
|
|
72
|
+
##補足
|
|
73
|
+
皆さま、ご回答をありがとうございます。説明不足な点がありましたので、補足させていただきます。
|
|
74
|
+
|
|
75
|
+
classAの仕様として、
|
|
76
|
+
・TxtWriterクラスはclassAの所有物である。
|
|
77
|
+
・classAを使う人は、classAのProcess関数を呼んだらテキストに出力されることを期待している
|
|
78
|
+
(classAを使う人にTxtWriterクラスを準備させたくない)
|
|
79
|
+
・複数のclassAインスタンスの出力先は固定
|
|
80
|
+
という観点から、外部から与えるのではなく、
|
|
81
|
+
> ClassAのstaticなメンバ変数としてTxtWriterの実体または参照先(単純ポインタやstd::shared_ptr<TxtWriter>等)を保持する。
|
|
82
|
+
|
|
83
|
+
という方法が良いかなと考えました。
|
|
84
|
+
もし上記の方法で実装する場合、
|
|
85
|
+
・TxtWriterクラスは、どのようにしてインスタンス化するのでしょうか?
|
|
86
|
+
・注意する点(排他制御が必要)などありましたら、教えていただけないでしょうか。
|
|
87
|
+
|
|
88
|
+
質問ばかりで申し訳ありませんが、よろしくお願いいたします。
|