• ベストアンサー

Classの中のClass定義について

Classの中のClass定義について 主にWindows環境でrubyを使用しているライトユーザーです。 ネットでソースを拝見していると、Class定義の中に更にClass定義がされているプログラムをみることがあります。以下のような感じですね。 Class Foo  Class Bar  ……  end …… end このようにClass定義を他のClass定義の中に書くのは、どのような理由によるのでしょうか? 素朴な疑問です、ご教示いただければ嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

名前空間ですね。 class Foo  class Bar  ……  end …… end class Hoge  class Bar  ……  end …… end class Bar  …… end だと、それぞれの、Barクラスは別物で、それぞれFoo::Bar、Hoge::Bar、Barという名前のクラスになります。ただし、クラスFooの中ではFoo::BarはBarと略記できるし、Hogeの中ではHoge::BarをBarと略記出来ます。 例えば、Fooクラスの中でしか利用しないクラスがあった場合に、他のクラスと名前の衝突を気にすることなく名前を付けることが出来るわけです。ただし、Fooクラス外からもFoo::Barのように利用することが出来るので、Fooクラス内に隠蔽できるわけではないですが。 定数などもクラスの中で定義すれば、Foo::CONSTNAME のような定数が出来ます。

siffon9
質問者

お礼

名前空間ですか。以前C++の初歩を勉強したときにでてきたのを思い出しました。 > 例えば、Fooクラスの中でしか利用しないクラスがあった場合 このような場合には確かに便利ですね、よくわかりました。 ご回答ありがとうございました。

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

FooとBarの関係性を明確にできるから、思考への負担がちょっと減る。

siffon9
質問者

お礼

ご回答ありがとうございました。

関連するQ&A