C++ | Operator Overloading | Question 3
Which of the following operators are overloaded by default by the compiler in every user defined classes even if user has not written?
1) Comparison Operator ( == ) 2) Assignment Operator ( = )
(A) Both 1 and 2
(B) Only 1
(C) Only 2
(D) None of the two
Answer: (C)
Explanation: Assign operator is by default available in all user defined classes even if user has not implemented. The default assignement does shallow copy.
But comparison operator “==” is not overloaded.
#include<iostream> using namespace std; class Complex { private: int real, imag; public: Complex(int r = 0, int i =0) {real = r; imag = i;} }; int main() { Complex c1(10, 5), c2(2, 4); // For example, below code works fine c1 = c2; // But this code throws compiler error if (c1 == c2) cout << "Same"; return 0; }
Please Login to comment...