質問編集履歴

1

追記

2017/01/26 11:27

投稿

yama_da
yama_da

スコア73

test CHANGED
File without changes
test CHANGED
@@ -215,3 +215,29 @@
215
215
  ```
216
216
 
217
217
  のように、Aでオリジナル?のDataオブジェクトを作り、そのポインタをB,Cに渡していくという方法のほうが良いでしょうか?というより、ポインタを使うこと以外でこの2つのやり方に違いはあるのでしょうか?同じ値を参照しているという点ではどちらも同じに思えるのですが、、、イマイチ参照渡しが理解できていないのかもしれません。よろしくお願いします。
218
+
219
+
220
+
221
+ <2017/1/26 追記>
222
+
223
+ こんばんは。皆さん回答ありがとうございます。僕の例えが少し大雑把すぎたので、もう少し付け加えさしてください。
224
+
225
+ AはB、Cを管理する1つのおおきなクラスで、プログラムの最初から最後まで生きている?(すみません、言葉が見つかりません。。)寿命の長いオブジェクトです。AはメンバにBをいくつか持っていて、そしてBもCを複数持っている、そしてCはこの中で言うと最小単位のようなオブジェクトです。また、B,CはAが削除されるまで削除されないオブジェクトです。このABCのオブジェクト全体で共有したいデータがいくつかあり、それをどうやって共有しようかと思い質問しました。
226
+
227
+
228
+
229
+ > 例えば、クラスCの中にData型のオブジェクトdataを用意して、clsAobj.clsBobj.clsCobj.dataのようにすればアクセスできますよね(public指定を前提とする)?
230
+
231
+
232
+
233
+ majiponiさんのおっしゃった、この方法ももちろん考えたのですが、Cは複数あるので、内容の同じオブジェクトをいくつも持つのは無駄ではないかと思い、使いませんでした。
234
+
235
+ 質問しておいてなんだという話になりますが、少しでもメモリが節約できればと思い参照を使おうとしたけれど、実際ポインタを使った方法と参照を使った方法でメモリの使用量に大きなさはあるのでしょうか?
236
+
237
+
238
+
239
+ > オブジェクトの共有目的で参照を使った場合、寿命の管理が難しくなり、また、混乱しやすいと思っています。
240
+
241
+
242
+
243
+ raccyさんのおっしゃったように、自分があとで見て混乱しないようにするためにも、ひねくれて参照なんて使わずに、ポインタを使ったほうがまだ安全なのではないかと、回答を読んでいるうちに思いました。また、シングルトンというのもあるようですが、そこまでするほどの物でもないしなぁといった感じです。結局、どうするのがベストなのでしょうか?