Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When to use overloaded assignment operator? [duplicate]

Tags:

c++

Possible Duplicate:
What is The Rule of Three?

When you require to define to your own assignment operator?

like image 391
user963241 Avatar asked Jan 22 '11 23:01

user963241


1 Answers

Generally, you'll need to define your own assignment operator under the same circumstances when you need to define your own copy constructor - i.e. when a default copy won't cut it. This happens in cases when your object manages dynamically allocated memory or other resources which need to be specially copied.

For example, if you have a class which manages a pointer that points to dynamically allocated memory, the default assignment operator will simply copy the pointer. Generally, this is not what you want - you want each object instance to have its own internal copy of the allocated data, and so you'll need a special assignment operator that allocates its own memory and performs a copy. This is, for example, what std::vector needs to do when copied or assigned.

like image 159
Charles Salvia Avatar answered Nov 15 '22 02:11

Charles Salvia