Which is the only operator in C++ which can be overloaded
but NOT inherited?

Answer Posted / sharathnasa

#include <iostream>
#include <iomanip>

using namespace std;

class A {
public:
int _i;
A(int i) : _i(i) { }
virtual A &operator=(A const &other) {
if (this!=&other) {
_i = other._i;
}
return *this;
}
virtual A operator+(A const &rvalue) {
return A(_i + rvalue._i);
}
virtual void print() {
cout << "A(_i=" << _i << ")";
}
};

class B : public A {
public:
int _j;
B(int i, int j) : A(i), _j(j) { }
virtual void print() {
cout << "B(_i=" << _i << ", _j=" << _j <<")";
}
};

int main() {
A a1(5), a2(3);
a1.print();
cout << " + ";
a2.print();
cout << " = ";
A a3 = a1 + a2;
a3.print();
cout << endl;

B b1(5,3), b2(3,5);
b1.print();
cout << " + ";
b2.print();
cout << " = ";

// this works, although (b1+b2) returns an A since it uses
A's operator+
(b1+b2).print();

// this does not work: no conversion from A to B, i.e.
operator= not inherited
// B b3 = b1 + b2;
// b3.print();
cout << endl;

return 0;
}

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What do you mean by Encapsulation?

799


class type to basic type conversion

2071


Can main method override?

809


Why polymorphism is used in oops?

775


Is enum a class?

778


What is overriding in oop?

766


What are the three parts of a simple empty class?

1740


officer say me - i am offered to a smoking , then what can you say

1828


What is new keyword in oops?

770


What is solid in oops?

795


What is class and example?

798


Can bst contain duplicates?

919


What is encapsulation oop?

782


What is meant by oops concept?

776


What is difference between pop and oop?

788