Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > operator++ и.т.п Продолжение =) |
Автор: kkkggg 17.6.2006, 20:02 |
#include <iostream.h> class complex { public: int r,i; complex (int re,int im) {r = re; i = im;} complex operator++(const complex&); }; complex complex::operator++(complex& ARG) { ARG.r = ARG.r + 1; ARG.i = ARG.i + 1; return *this; } int main () { complex a = complex(1,1); a++; cout << a.re << " " << a.im << endl; return 0; } Хотелось бы узнать, что сдесь не так? |
Автор: 0x07L 17.6.2006, 20:14 |
В main имеем Между тем в объявлении класса complex Добавлено @ 20:18 И еще. Операнд типа complex в метод operator++ передается неявно через this. operator++, насколько я понимаю, здесь не должен иметь аргументов. Добавлено @ 20:19 А еще похоже, что ты забыл const в определении operator++. |
Автор: Fedor 17.6.2006, 20:20 | ||||
Преинкремент
Постинкремент
|
Автор: 0x07L 17.6.2006, 20:21 |
2_Fedor Вот-вот |
Автор: LPBOY 17.6.2006, 22:59 |
Fedor, если придерживать традиционной семантики, то префиксный инкремент должен возвращать ссылку complex&, а постфиксный const complex. P.S. Хотя нужны ли вообще классу complex операторы инкремента, это еще вопрос. ![]() |