From: m-hatake@... Date: 2007-12-12T04:08:24+09:00 Subject: [ruby-list:44334] Re: クラス:相互参照系の作成方法について質問です 畠山といいます。 わたしがいつもやるのはインスタンスを生成した後にメンバー変数にセットする というものですが、どうでしょう。 class A def setB(b) @b = b end end class B def setA(a) @a = a end end a = A.new b = B.new a.setB(b) b.setA(a) -- hatake From: rubikitch@ruby-lang.org Subject: [ruby-list:44333] Re: クラス:相互参照系の作成方法について質問です Date: Wed, 12 Dec 2007 03:08:39 +0900 > From: "Saburoh Sakai" > Subject: [ruby-list:44332] クラス:相互参照系の作成方法について質問です > Date: Wed, 12 Dec 2007 01:49:28 +0900 > > るびきちです。 > > > 現在、互いを相互に参照するクラスの系を作りたいのですが、 > > そのようなことはRubyで可能でしょうか? > > 可能です。 > > > いわゆる「循環参照」を実現させたいわけなのです…。 > > 具体的には以下のようなことです。 > > (snip) > > class A > > b=B.new() ★ > > end > > ただ、このbはローカル変数なのでメソッドからは参照できません。 > おそらくクラス変数なんでしょう。 > ということで、以下のコードでもクラス変数として宣言しておきました。 > > こんな感じに空のクラスを宣言しておきます。 > そうすることで実装を記述するときにお互いのクラスが見えるようになります。 > > class A; end > class B; end > > class A > @@b = B.new # => # > end > > class B > @@a = A.new # => # > end > > -- > rubikitch > Blog: http://d.hatena.ne.jp/rubikitch/ > Site: http://www.rubyist.net/~rubikitch/