Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Avoid making a copy reference of an object

 
Sverre Moe
Ranch Hand
Posts: 110
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What is the best way to copy an object?
Using obj2 = obj1 would change the values in obj1 when I change them in obj2.

I do not want the second object to be a reference to the first object. Changes in object2 should not change object1.

Is the interface Cloneable the best way to do this?
 
Bill Cruise
Ranch Hand
Posts: 148
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You can make a copy constructor so that your code becomes

obj2 = new MyObject(obj1);

You then just implement the MyObject(MyObject o) constructor to perform the copy in whatever way is appropriate for your class.
 
Bill Shirley
Ranch Hand
Posts: 457
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
there's a 100 answers to "which way is best", and the only correct ones include "it depends"

there's a lot written about it, you should be able to find by searching a bit,

in the mean time, the copy constructor above is a minimally invasive way to get a copy,
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic