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
What do you mean by Encapsulation?
class type to basic type conversion
Can main method override?
Why polymorphism is used in oops?
Is enum a class?
What is overriding in oop?
What are the three parts of a simple empty class?
officer say me - i am offered to a smoking , then what can you say
What is new keyword in oops?
What is solid in oops?
What is class and example?
Can bst contain duplicates?
What is encapsulation oop?
What is meant by oops concept?
What is difference between pop and oop?