📜  C++ |运算符重载|问题3

📅  最后修改于: 2021-05-25 21:11:37             🧑  作者: Mango

即使用户未编写代码,编译器在默认情况下也会在每个用户定义的类中重载以下哪个运算符?

1) Comparison Operator ( == )
2) Assignment Operator ( = ) 

(A) 1和2
(B)只有1
(C)仅2
(D)两者都不是答案: (C)
说明:默认情况下,即使用户尚未实现,分配器运算符在所有用户定义的类中均可用。默认分配执行浅表复制。

但比较运算符“==”不超载。

#include
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;
}

这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。