Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Артем Смирнов
6 / 6 / 1
Регистрация: 15.05.2012
Сообщений: 40
#1

Перегрузка унарных операторов - C++

17.10.2012, 19:11. Просмотров 1064. Ответов 5
Метки нет (Все метки)

Здравствуйте! В книге Шилдта С++ Базовый курс много примеров по перегрузке операторов. По одному из них у меня вопрос. Перегружаем префиксную форму оператора инкремента:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class three_d {
     int x,y,z; // трехмерные координаты
public:
     three_d(int i, int j, int k) { x=i; y=j; z=k; }
     //......
     three_d operator++ (); // префиксную
} ;
//......
// Перегруженная версия оператора ++ (префиксная)
three_d threed_d::operator++()
{  
     x++;
     y++;
     z++;
     return *this;
}
У меня возник следующий вопрос: почему для перегрузки префиксной формы инкремента ,мы использовали постфиксную форму инкрементирования этих координат, заранее большое спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 19:11     Перегрузка унарных операторов
Посмотрите здесь:

C++ Перегрузка операторов
Перегрузка операторов С++ C++
C++ Перегрузка операторов -> <-
C++ Перегрузка операторов(=,+)
C++ Перегрузка операторов С++
C++ перегрузка операторов
C++ Перегрузка операторов
C++ Перегрузка операторов
Сколько используется параметров при перегрузке унарных операторов как френд-функций? C++
Перегрузка операторов C++
В чём отличие унарных и бинарных операторов? C++
C++ Использование функций-членов для перегрузки унарных операторов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2775 / 1589 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
17.10.2012, 19:16     Перегрузка унарных операторов #2
Да тут особой разницы нет, просто автору так больше нравится, видимо.
Артем Смирнов
6 / 6 / 1
Регистрация: 15.05.2012
Сообщений: 40
17.10.2012, 19:22  [ТС]     Перегрузка унарных операторов #3
Ммм, а вот я учил что если оператор постфиксный , то ведь сначала используют в выражениях его старое значение, а только потом инкрементируют, я думал что в примере, перегруженный оператор возвратит старое значение координат (а хотя оператор префиксный!)
David Sylva
 Аватар для David Sylva
1284 / 946 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
17.10.2012, 19:29     Перегрузка унарных операторов #4
В данном примере без разницы.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
17.10.2012, 19:38     Перегрузка унарных операторов #5
Артем Смирнов, в случае переменной разницы никакой, был бы, например, массив, то это уже другое дело:
i=0;
a[++i]=3; //a[1]=3
a[i++]=3; //a[0]=3
Артем Смирнов
6 / 6 / 1
Регистрация: 15.05.2012
Сообщений: 40
17.10.2012, 19:40  [ТС]     Перегрузка унарных операторов #6
Все понятно! Всем ответившим большое спасибо!
Yandex
Объявления
17.10.2012, 19:40     Перегрузка унарных операторов
Ответ Создать тему
Опции темы

Текущее время: 13:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru