From: IWAOKA Masahiro Date: 2003-06-23T21:24:54+09:00 Subject: [ruby-list:37816] Re: 配列の使い方 いわおかです。 In the message <3EF6E5FF.96FEE2D9@tjsys.co.jp>, on Mon, Jun 23, 2003 at 08:32:35PM +0900, Kouji Miyauchi wrote: > class Hoge > @@a = 10 @@a はクラス変数なので、いくつ new しても実体は 1 つです。インスタ ンス毎に変えるならば @a ですが、それでも > class Hogehoge > @@ary = Array.new() > def pp() > fi = Hoge.new > se = Hoge.new > se.set( 11 ) > @@ary[0] = fi > @@ary[1] = se > fi.set( 12 ) > @@ary[2] = fi @@ary[0] と @@ary[2] の指し示す実体は同じです。 > 実際に行いたいことは > 下のC++のコードと同等の処理です。 ということでしたら、こんな感じでどうでしょうか? 実は僕も Array を 同じクラスの別のインスタンスで初期化したい時にいつも迷うので、いい 方法がありましたら教えて下さい。 #!/usr/local/bin/ruby class Hoge def initialize @a = 10 super end def disp() p @a end def set ( s ) @a = s end end class Hogehoge def initialize @@ary = Array::new for i in 1..3 @@ary << Hoge.new end super end def pp() @@ary[1].set(11) @@ary[2].set(12) @@ary[0].disp() @@ary[1].disp() @@ary[2].disp() end end testcase = Hogehoge.new testcase.pp() いわおか