Рубрики

C ++ | Перегрузка оператора | Вопрос 3

Какие из следующих операторов по умолчанию перегружены компилятором в каждом определяемом пользователем классе, даже если пользователь не написал?

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

(A) как 1, так и 2
(B) только 1
(С) только 2
(D) Ни один из двух

Ответ: (с)
Объяснение: Оператор Assign по умолчанию доступен во всех пользовательских классах, даже если пользователь не реализовал. Задание по умолчанию делает поверхностное копирование.

Но оператор сравнения «==» не перегружен.

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

Тест на этот вопрос

Рекомендуемые посты:

C ++ | Перегрузка оператора | Вопрос 3

0.00 (0%) 0 votes