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

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

Войти
Регистрация
Восстановить пароль
 
Radonl-9
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 11
#1

Как перегрузить ++А и А++ и сделать эти перегрузки разными операциями? - C++

07.11.2014, 00:04. Просмотров 189. Ответов 7
Метки нет (Все метки)

------------------------------------------------------------
Если А++ перегрузить будет просто:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A
{
   int a;
   public:
   A()
      {
        a=0;
      }
  A operator++()
   {
          a++;
          return *this;
   }
 
}
так как перегрузить ++А ???
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2014, 00:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как перегрузить ++А и А++ и сделать эти перегрузки разными операциями? (C++):

Как перегрузить оператор "+" для шаблонного класса, инстанцированного разными типами? - C++
подскажите как перегрузить оператор "+" для шаблона , инстанцированных разными типами ...

как сделать эти задачи? - C++
Лабораторная 4. Задание: Напишите программу перевода чисел (длиной 8 бит) из одной системы счисления в другую. -Перевод из системы...

как сделать эти задания? - C++
1. Знайти всі n-значні числа, сума квадратів цифр яких кратна М. 2. Секретний замок для сейфа складається з 10 розташованих у ряд гні-зд,...

Хочу сравнить как это задание сделать разными способами. Спасибо - C++
Хочу сравнить как это задание сделать разными способами. Спасибо

Подскажите как сделать чтобы эти дроби не выводились, а записались в массив str1[100] - C++
Подскажите как сделать чтобы эти дроби не выводились, а записались в массив str1 char str1; for (int i = 0; i < 10; i++) { if...

При помощи перегрузки функций сделать вывод заданного количества символов на экран - C++
Доброй ночи, друзья. Пытаюсь разобраться. Как при помощи перезагрузки функций сделать вывод заданного количества символов на экран?

7
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
24005 / 15986 / 4835
Регистрация: 22.10.2011
Сообщений: 28,270
Записей в блоге: 5
07.11.2014, 00:39 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот ты как раз и перегрузил префиксный инкремент (++A). Для перегрузки постфиксного, надо добавить еще параметр типа int:
C++
1
2
3
4
A operator++(int)
{
   // ...
}
1
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
07.11.2014, 11:04 #3
Radonl-9,
C++
1
2
3
4
5
6
7
8
9
10
11
const & A operator++()
   {
          a++;
          return *this;
   }
const A operator++(int)
{
   A tmp(*this);
   a++;
   return tmp;
}
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.11.2014, 11:05 #4
aLarman, всё не так
В префиксной форме хорошо бы вызывать ++a (строка 3).
Ну а в постфиксной надо this менять (9 строка), а возвращать tmp.
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
07.11.2014, 11:06 #5
Tulosba, в постфиксной ошибся, а в префиксной как таковой ошибки нет, просто так как Вы предлагает более читабельно

Добавлено через 14 секунд
Tulosba, в постфиксной ошибку подправил
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.11.2014, 11:22 #6
Цитата Сообщение от aLarman Посмотреть сообщение
а в префиксной как таковой ошибки нет
С точки зрения конечного результата - ошибки нет. Но она есть с точки зрения логики. "Фиксность" объекта верхнего уровня должна передаваться объектам нижнего без изменений.
0
aLarman
07.11.2014, 11:27
  #7

Не по теме:

а ну так то да :

0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.11.2014, 12:16 #8
aLarman, и константность надо бы убрать.
0
07.11.2014, 12:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2014, 12:16
Привет! Вот еще темы с ответами:

Сделать выборку между событиями с разными вероятностями - C++
Здравствуйте, как реализовать такое? Есть событие A1, A2, ... Ai и есть массив распределения этих вероятностей p{P(A1), P(A2), P(A3),...

Сделать выборку между событиями с разными вероятностями - C++
Добрый день. Есть следующая задача. Допустим дано n вариантов, вероятность наступления каждого различна. Надо получить вариант. ...

Сделать статический массив с разными типами данных - C++
Задача такова, есть ровно 60 магазинов. У каждого магазина по 6 параметров: 1) Адрес типа char 2) Заработок за сутки типа int 3)...

Как перегрузить *. ? - C++
И вообще как называется этот оператор? Может, я слепая, но я даже здесь не нашлаего http://ru.wikipedia.org/wiki/Операторы_в_C_и_C%2B%2B ...


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

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

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