|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||||||
Зачем нужен operator++(int)30.03.2017, 13:45. Показов 6540. Ответов 34
Метки нет (Все метки)
Очень тупой вопрос - для чего нужен operator++(int)? Ну, то есть, понятно что он делает постинкремент. Непонятно почему этот инкремент не делает сам компилятор, на основе operator++().
0
|
||||||
| 30.03.2017, 13:45 | |
|
Ответы с готовыми решениями:
34
Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить?
|
|
Вездепух
13214 / 6847 / 1825
Регистрация: 18.10.2014
Сообщений: 17,333
|
|||||||
| 31.03.2017, 02:07 | |||||||
++ - это отдельный самостоятельный оператор, который может быть перегружен отдельно совершенно произвольным образом, никак не связанным с префиксным ++.Во-вторых, даже если семантика этих операторов согласована, все равно это не означает, что такая реализация является правильной/осмысленной реализацией постфиксного ++. Например, для итераторов категории Input Iterator старое значение итератора вообще не имеет смысла (оно сразу "протухает"), т.е. пытаться сохранять его нельзя. Однако постинкремент такие итераторы обязаны поддерживать, чтобы работать в рамках generic алгоритмов, реализованных в терминах постинкремента (наример, использующих *it++).Во-третьих, даже если постфиксный ++ имеет "ожидамое" поведение, реализация его вышеприведеным способом через префиксный ++ совсем не обязательно наиболее оптимальна.Можно было бы предлоджить генерировать такую реализацию в ответ на
0
|
|||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||
| 31.03.2017, 02:28 | ||
|
Поэтому, ИМХО, было бы удобнее по умолчанию их определять. Ошибки, которые несет неявное определение мне не очевидны, в отличии от ошибок, которые несет простыня "лишнего" кода.
0
|
||
|
Комп_Оратор)
|
||||||
| 31.03.2017, 10:51 | ||||||
|
Давайте так ещё попробуем
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 31.03.2017, 11:26 | ||
|
ничего не мешает самостоятельно генерить дефолтную версию. это как с конструктором копии: если нужно запретить - не вопрос. если нужно кастомизировать - определяем явно. дефолтная же версия устроит, пожалуй, в 90% всех остальных случаях. могли бы получить годный такой сахарок. вот только нужно это при изготовлении каких нибудь кастомных итераторов, достаточно редкая задачка, что бы ради неё вносить правки в стандарт, и core-language
0
|
||
|
Комп_Оратор)
|
||
| 31.03.2017, 11:39 | ||
|
Или конструктор копии есть но он закрыт. То есть, члены его используют, потому что знают когда и как это можно делать. Нужен он им. А для оператора post++ он не годится. А компилятор возьмёт да и использует его. Он же не будет анализировать код, чтобы понять, что Вы этого не хотели.
1
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 31.03.2017, 12:06 | |
|
0
|
|
|
Комп_Оратор)
|
|||||||
| 31.03.2017, 12:32 | |||||||
|
Но не суть.
1
|
|||||||
|
Любитель чаепитий
|
|
| 31.03.2017, 12:36 | |
|
Кстати, а ведь IGPIGP прав, что будет, если компилятор будет генерировать этот оператор, но при этом в классе не будет реализован явно конструктор копирования, но будет использоваться динамическое выделение памяти с освобождением в деструкторе, или вообще будет удален конструктор копирования, или будет объявлен, но реализован неправильно?
1
|
|
|
Комп_Оратор)
|
||
| 31.03.2017, 12:41 | ||
|
Вот! только вот тут чуть не понял Вас:
Потому как если что-то объявлено и определено неправильно это не проблема компилятора.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 31.03.2017, 12:43 | |
|
0
|
|
|
Любитель чаепитий
|
|||||||
| 31.03.2017, 12:55 | |||||||
|
что если программист решил реализацию конструктора копирования положить на компилятор, ибо он явно их нигде не использует и они ему вообще не нужны, и не реализовал их, но при этом в классе используется работа с дин. памятью и освобождением в деструкторе? может получиться так: http://rextester.com/GISF27475
0
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||
| 31.03.2017, 13:35 | ||||||||||||
|
впрочем, годный компилятор услужливо намекнёт, чем чревато нарушение правило трёх: http://rextester.com/XRMH80806
ни к особенностям авто генерации конструкторов, ни к теоретической возможной особенности автогенерации операторов инкремента.
0
|
||||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 31.03.2017, 13:48 | |
|
0
|
|
|
Комп_Оратор)
|
||
| 31.03.2017, 14:26 | ||
|
Но да, если программист создал владельца сложных ресурсов и "возложил" на компилятор, то правило взаимности гласит что как аукнется, так и откликнется. То есть, всё будет возложено обратно. И это будет справедливо.imho
0
|
||
| 31.03.2017, 14:26 | |
|
error: invalid operands of types 'const int*' and 'const int*' to binary 'operator+'
operator int() что за зверь? invalid operands of types 'double' and 'int' to binary 'operator%' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|