- 239 名前:201 [2008/03/23(日) 23:44:18 ]
- >>231
>foo() の中で X::a をアクセスしようとするからエラーになるよね。 アクセッサをManagerの方に定義することを考えていたんだけどな。 「見える」「見えない」の話じゃんくてprivateだからだろ。 >もし、C++ の private が変数を「見えなくする」なら bar() の b と同じように、 foo() は ::a を返すはずだろ? グローバル変数よりメンバ変数を参照しにいくのは知ってます。 Managerの方に「一部のクラス」に使わせたい機能だけ、protected または public にして 一部のクラスがManagerを継承すればいい。 Manager のprivateのメンバには「一部のクラス」も参照できない。 「一部のクラス」以外にManagerクラスのインスタンスを作られるのが困る場合は コンストラクタなどをprotectedにすればいいんでは? 「一部のクラス」に対してManagerは一つらしいので、また違ってきますが・・・・
|

|