Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Beginner
Mar 28, 1997

Calling the Operator =

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;
};
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap