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

Answers were Sorted based on User's Feedback



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

Answer / kalaivani

the '='(equal) operater can be overloaded but cannot be
inherited

Is This Answer Correct ?    82 Yes 1 No

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

Answer / anban

basically "=" is the operator that cannot be inherited but
can
be overloaded..hope u got it.

Is This Answer Correct ?    37 Yes 0 No

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

Answer / smita

"="this is the operator in C++ that can be overloaded but Not inherited

Is This Answer Correct ?    20 Yes 2 No

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

Answer / lokesh

"=" is the only operator which can be overloaded but can not
be inherited

Is This Answer Correct ?    12 Yes 2 No

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

Answer / abcd

Ok I think instead of 5 same answers Someone should explain
why it is designed liek this?

Why it can not be inherited?

Is This Answer Correct ?    1 Yes 0 No

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

Answer / 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

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

Answer / hellboy

'this' operator. I mean the operator that is called as 'this'

Is This Answer Correct ?    2 Yes 13 No

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

Answer / devvrat

+

Is This Answer Correct ?    8 Yes 40 No

Post New Answer

More OOPS Interview Questions

different types of castings

3 Answers   Siemens,


if i have same function with same number of argument but defined in different files. Now i am adding these two files in a third file and calling this function . which will get called and wht decide the precedence?

1 Answers  


What type of loop is a for loop?

0 Answers  


What is multilevel inheritance explain with example?

0 Answers  


How does polymorphism work?

0 Answers  






What are properties in oop?

0 Answers  


What are benefits of oop?

0 Answers  


What are the 4 main oop principles?

0 Answers  


i am getting an of the type can not convert int to int *. to overcome this problem what we should do?

0 Answers  


wht is ditch

0 Answers  


Program to print 0 to 9 in cross order

3 Answers  


What do you mean by overloading?

0 Answers  


Categories