How to change objects in heap?

I'm novice at ruby and faced to a little problem.

I'll explain on the example:

I have a few references to an object

a = A.new
b = a
c = a
d = a

I want to change object of class A with object of class B here

if I do

a = B.new

b,c,d will be still refer to object A

How can I do it?

···

--
Posted via http://www.ruby-forum.com/.

Dmitry Regent wrote:

I'm novice at ruby and faced to a little problem.

I'll explain on the example:

I have a few references to an object

a = A.new
b = a
c = a
d = a

I want to change object of class A with object of class B here

if I do

a = B.new

b,c,d will be still refer to object A

How can I do it?

a = [10]
b = a
c = a

a[0] = 20
puts b[0]
puts c[0]

--output:--
20
20

···

--
Posted via http://www.ruby-forum.com/\.

a = [10]
b = a
c = a

a[0] = 20
puts b[0]
puts c[0]

--output:--
20
20

This way you are correcting existed object.
But if you will do

a = Array.new

a =>

but!

b = [20]
c = [20]

I want to get C++ analog in ruby for operation with pointer.
When i can destract object and constract new with this pointer.

···

--
Posted via http://www.ruby-forum.com/\.

Ruby doesn't have pointers or references the way C++ does. To get similar
behavior, you can mimic it using a 1-element array. That's what 7stud--
was demonstrating, though some description of the theory would have
helped.

--Ken

···

On Fri, 18 Apr 2008 14:33:48 -0500, Dmitry Regent wrote:

a = [10]
b = a
c = a

a[0] = 20
puts b[0]
puts c[0]

--output:--
20
20

This way you are correcting existed object. But if you will do

a = Array.new

a =>

but!

b = [20]
c = [20]

I want to get C++ analog in ruby for operation with pointer. When i can
destract object and constract new with this pointer.

--
Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/