Question:
How can I call the operator= of the base class from the operator=
in the derived class?
The data member in the base class is a private data member. I want to be able to use operator = in the derived class and call the operator = in the base class
Answer:
I am assuming that the copy assignment operator in the base class is
either public or protected so that you can use it from the derived class.
Given that assumption, here is a code snippet that does the exact same
thing.
class Base
{
protected:
const Base &operator = (const Base &rhs)
{
data = rhs.data;
return *this;
}
private:
int data;
};
class Derived : public Base
{
public:
const Derived &operator =(const Derived &rhs)
{
// call base classes assignment first
Base::operator=(rhs);
data = rhs.data;
return *this;
}
private:
int data;
};