Рубрики

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

Чем отличается компилятор C ++ между перегруженными постфиксными и префиксными операторами?
(A) C ++ не позволяет перекрывать оба оператора в классе
(B) Postfix ++ имеет фиктивный параметр
(C) Префикс ++ имеет фиктивный параметр
(D) Делая префикс ++ в качестве глобальной функции и постфикс в качестве функции-члена.

Ответ: (Б)
Объяснение: см. Следующий пример:

class Complex
{
private:
    int real;
    int imag;
public:
    Complex(int r, int i)  {  real = r;   imag = i; }
    Complex operator ++(int);
    Complex & operator ++();
};

Complex &Complex::operator ++()
{
    real++; imag++;
    return *this;
}

Complex Complex::operator ++(int i)
{
    Complex c1(real, imag);
    real++; imag++;
    return c1;
}

int main()
{
    Complex c1(10, 15);
    c1++; 
    ++c1;
    return 0;
}

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

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

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

0.00 (0%) 0 votes