Reputation: 101
I would like to know in which situations should a copy constructor or assignment operator should be defined. From what I researhed I see that whenever value is passed by value or returned by value, the copy constructor and overloaded assignment operator needs to be defined. However, when pointers or reference are used for pass/return by pointer or reference(&), do we need copy constructor/overloaded assignment operator
class Sample
{
public :
// Assume a constructor that sets the node member
SampleNode * getNode()
{
return _node;
}
private:
SampleNode * node;
}
class SampleNode
{
public:
void getValue()
{
return _value;
}
private:
unsigned int value;
}
main()
{
Sample * ptr = new Sample(15);
SampleNode *node = getNode(); // Do we need a copy constructor here?
}
Upvotes: 0
Views: 159
Reputation: 96845
Defining a pointer or reference to an object doesn't require the use of any constructors.
Upvotes: 2