2015-12-15 3 views
0

Мне нужно перегружать операторы для класса комплексных чисел с 2 отдельными членами:Перегрузки ++ оператор

double real; 
    double imag; 

Это конструктор

complex::complex(double a, double b) { 
    real = a; 
    imag = b; 
} 

Это данный прототип

complex complex :: operator++ (int x); 

но я не вижу, как это будет перезаписано с

int u = 1; 
int h = 3; 

u++3; 

не работает

так, как бы это скомпилировать

я только когда-либо видел

variable++ 

--variable 

Как бы это быть перегружен?

+0

Оператор '+ =' также существует – AndyG

+0

Обратите внимание, что операция '++' не имеет четко определенной семантики для комплексных чисел. Поэтому рекомендуется избегать его реализации. –

ответ

4

int x в подписке оператора после инкремента operator++(int x) называется фиктивный параметр. Это на самом деле ничего не значит, кроме как отличить это от operator++(), который является оператором pre-increment.

В теле функции вы пишете логику для пост-приращения, но просто не используйте x. Он получает значение 0, когда вы используете variable++.

Технически вы можете написать variable.operator++(5);, а затем оператор post-increment будет вызываться с x, являющимся 5, но нет никакой реальной причины для этого.

Смежные вопросы