simple newbie question

K

kieran kirwan

Hi,
I have a piece of code below in which I;
1.....make a new NumberList object and append two MyNumber objects.
2.....copy the NumberList object and append a further MyNumber object.
However after this both objects are the same.
Any help would be greatly appreciated.
Thanks,
Kieran

---------------------------------------------------
class MyNumber
def initialize(x)
@x=x
end
attr_accessor :x
end
class MyNumberList
def initialize
@nums = Array.new
end
def append(num)
@nums.push(num)
self
end
def sum
sum=0
@nums.each {|s| sum += s.x }
return sum
end
end

zl1=MyNumberList.new; zl1.append(MyNumber.new(10));
zl1.append(MyNumber.new(20))
puts zl1.sum
zl2=zl1; zl2.append(MyNumber.new(40))
puts zl1.sum
puts zl2.sum
 
D

dblack

Hi --

Hi,
I have a piece of code below in which I;
1.....make a new NumberList object and append two MyNumber objects.
2.....copy the NumberList object and append a further MyNumber object.
However after this both objects are the same. [...]
zl2=zl1

That's why they're the same: by doing this assignment, you're storing
a new reference to the object in zl2. But it's still the same object.


David

--
David A. Black
(e-mail address removed)

"Ruby for Rails", from Manning Publications, coming May 1, 2006!
http://www.manning.com/books/black
 
E

Eric Jacoboni

kieran kirwan said:
Hi,
I have a piece of code below in which I;
1.....make a new NumberList object and append two MyNumber objects.
2.....copy the NumberList object and append a further MyNumber object.
However after this both objects are the same.
Any help would be greatly appreciated.

See said:

As said, you doesn't copy the contents of zl1 in zl2: you make zl2 and
zl1 reference the same objet. What you want to do is to copy the
*contents* of zl1 into zl2.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,990
Messages
2,570,211
Members
46,796
Latest member
SteveBreed

Latest Threads

Top