Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

17.10.2012, 19:11. Просмотров 1099. Ответов 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;
}
У меня возник следующий вопрос: почему для перегрузки префиксной формы инкремента ,мы использовали постфиксную форму инкрементирования этих координат, заранее большое спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 19:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка унарных операторов (C++):

Перегрузка унарных и бинарных операторов в шаблоне - C++
Доброго времени суток! Недавно столкнулся с проблемой при написании такого шаблона: template <typename T> class CPoint; template...

В чём отличие унарных и бинарных операторов? - C++
Подскажите пожалуйста, это унарный или бинарный оператор (а-b для комплексных чисел). Я знаю, что бинарный оператор, это когда два...

Использование функций-членов для перегрузки унарных операторов - C++
Добрый день уважаемые коллеги. Возник вопрос. как работают эти строки? three_d operator+(three_d op2);// оператор ор1 передается...

Сколько используется параметров при перегрузке унарных операторов как френд-функций? - C++
Вопрос следующий интересует: При перегрузке унарных операторов как френд-функций сколько используется параметров? Также при перегрузке...

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this - C++
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в зависимости от чего зависит агрумент при...

C++ перегрузка операторов - C++
люди такая ситуация кто может в краце объясните перегрузку операторов мне например надо перегрузить оператор умножения что бы умножить...

5
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,200
Завершенные тесты: 1
17.10.2012, 19:16 #2
Да тут особой разницы нет, просто автору так больше нравится, видимо.
1
Артем Смирнов
6 / 6 / 1
Регистрация: 15.05.2012
Сообщений: 40
17.10.2012, 19:22  [ТС] #3
Ммм, а вот я учил что если оператор постфиксный , то ведь сначала используют в выражениях его старое значение, а только потом инкрементируют, я думал что в примере, перегруженный оператор возвратит старое значение координат (а хотя оператор префиксный!)
0
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
17.10.2012, 19:29 #4
В данном примере без разницы.
1
BumerangSP
4287 / 1409 / 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
1
Артем Смирнов
6 / 6 / 1
Регистрация: 15.05.2012
Сообщений: 40
17.10.2012, 19:40  [ТС] #6
Все понятно! Всем ответившим большое спасибо!
0
17.10.2012, 19:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2012, 19:40
Привет! Вот еще темы с ответами:

Перегрузка операторов - C++
Помогите пожалуйста разобраться, не могу понять как работает часть этой программы: #include <iostream> using namespace std; class...

Перегрузка операторов - C++
Доброго времени суток. на завтра надо сделать работу, а я не могу понять как использовать перегрузку операторов. помогите пожалуйста...

Перегрузка операторов +=, -=, *= - C++
Доброе время суток! Начал писать одно лабораторную роботу,с начала показалось что она крайне проста,но потом возникли непредвиденные...

перегрузка операторов - C++
Имеется такая программа: class reversion { vector<int> mass1; vector<int> mass2; vector<int> rev1; vector<int> rev2; ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.