[ruby-list:37815] 配列の使い方

From: Kouji Miyauchi <koji.miyauchi@...>
Date: 2003-06-23 11:32:35 UTC
List: ruby-list #37815
宮内と申します。

配列の使い方について教えてください。

---------------------------------------------------------------
class Hoge
	@@a = 10
	def disp()
		p @@a
	end

	def set( s )
		@@a = s
	end
end

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].disp()
		@@ary[1].disp()
		@@ary[2].disp()
	end
end

testcase = Hogehoge.new
testcase.pp()
-------------------------------------------------------------
上記のソースを実行して
-----------------------
10
11
12
-----------------------
という結果を得たいのですが、実際は
-----------------------
12
12
12
-----------------------
と表示されてしまいます。

実際に行いたいことは
下のC++のコードと同等の処理です。
-------------------------------------------------------------
class Hoge
{
    int a;
public:
    Hoge(){ a = 10;};
    virtual ~Hoge(){};
    void set( int n ){ a = n;};
    void disp(){ cout << a << "\n"; };
};

int main()
{
    Hoge Array[3];
    Array[1].set(11);
    Array[2].set(12);
    Array[0].disp();
    Array[1].disp();
    Array[2].disp();
    return 0;
}
-------------------------------------------------------------

Rubyだとクラスインスタンスの配列化が出来ないようなので
どのように配列を作るのが適当なのか良くわかりません。

すみませんが、ご教授お願いいたします。

-- 
----
宮内 浩司
E-Mail: koji.miyauchi@tjsys.co.jp

In This Thread

Prev Next