|
-2 / 8 / 2
Регистрация: 10.11.2008
Сообщений: 776
|
|
Отличие перегрузки operator() от конструктора16.11.2015, 14:21. Показов 5331. Ответов 51
Метки нет (Все метки)
Добрый день!
Подскажите пожалуйста, в чем отличие перегрузки operator() от конструктора, и почему нельзя простой объект передать в виде функционального объекта? Или можно?
0
|
|
| 16.11.2015, 14:21 | |
|
Ответы с готовыми решениями:
51
Перегрузки (operator+) Ошибка перегрузки конструктора
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||||||
| 17.11.2015, 12:33 | |||||||||||
|
Имеется в виду, разумеется, переносимый вариант, а не какие-нибудь махинации с битами на конкретно взятой платформе. Ты же утверждал: Понятно, что весь смысл существования конструкторов в C++ - исключить возможность, имеющуюся в любимых тобой сях, оперировать над неинициализированными данными. Т.е. чтобы создание и инициализация были, по сути, неделимой операцией. В общем, тут есть нечто общее с твоим подходом, который ты внушал, рассказывая про возвращаемое значение из конструктора (через оператор преобразования в целое).
0
|
|||||||||||
|
|
|||||
| 17.11.2015, 13:38 | |||||
|
Добавлено через 2 минуты Не по теме: В одной из тем Kastaneda указал на неправильность термина "оператор new", я просто не помню, как его называть правильно, а потому попрошу к слову "оператор" не придираться
1
|
|||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||
| 17.11.2015, 13:57 | ||||
|
N3797 12.1.2
3.8.1
Добавлено через 6 минут Но 3.8.3
3
|
||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||
| 17.11.2015, 14:17 | ||||
|
Что ж, готов признать свою ошибку. Надо чаще в Стандарт заглядывать (1.8/1):
Добавлено через 2 минуты
1
|
||||
|
|
|||
| 17.11.2015, 14:24 | |||
|
Добавлено через 3 минуты Добавлено через 2 минуты Чисто до кучи https://www.cyberforum.ru/blogs/18334/blog103.html
0
|
|||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 17.11.2015, 14:30 | ||
|
0
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 17.11.2015, 14:57 | ||
|
0
|
||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||||||
| 17.11.2015, 14:59 | ||||||
|
ок, народ, пример
следовательно объект не создан, то что объект начал создавать это яснопонятно, но в конечном итоге он не считается созданным, раз деструктор не вызвался, значит конструктор создает объект в том числе. Лучше бы объяснили ТС разницу между конструктором и call-оперторром, чем сраться из-за терминов, это срач в любом случае не отвечает на вопросы и не несет истины
0
|
||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||
| 17.11.2015, 15:12 | ||||
|
0
|
||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 17.11.2015, 15:30 | ||
|
0
|
||
| 17.11.2015, 15:41 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||
| 17.11.2015, 19:12 | ||||||||||
|
кстати, когда я пишу что-то вроде:
кто и каким образом подсовывает туда ноль. и вообще, вдумайтесь в слово "синтаксис", которое вы употребили выше. что там под капотом у компилятора - вторичный фактор. как мы можем это использовать - первичный. с точки зрения синтаксиса все типы обладают конструкторами. и мы можем на это закладываться. вот что главное. просто дружит со здравым смыслом. а вот к примеру на пыхе оно не дружит со здравым смыслом. и соотвественно, там запросто можно подергать функции-члены ещё не проиницилизированного наследника. и поиметь весь сопутствующий гемморой. не означает отсутствие его существования. принципиально, что при желании, можно и конструктор в качестве функтора приспособить.
0
|
||||||||||
| 17.11.2015, 19:21 | |
|
Не по теме: Блин. Ну вы прям как бабки старые.
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||
| 17.11.2015, 21:02 | |||||||
0
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||
| 17.11.2015, 21:34 | |||||||||
|
нет никакой разницы между отсутствием конструктора, и ничего не делающим конструктором. и нет никакой разницы между вызовом реального конструтора, который запишет в объект ноль, и шаманством компилятора, который сгенерирует код записи нуля в объект. нет никакой разницы в первую очередь с точки зрения синтаксиса. и нет никакой разницы с технической точки зрения. с точки зрения синтаксиса. то, что они фиктивные - монопенисуальный фактор. наверное, это трудно будет понять человеку, который думает, что конструктор создает объект. до вас тупо не доходит, о чем пишет Страуструп. ну тогда почитайте тогда лучше нашего Евгения: что я вам как минимум уже два раза в этой теме пытался донести? конструктор не доработал - объект в неконсистентном состоянии. что на этапе работы конструктора объект существует. но если вылетит птичка, объект абортируется.
0
|
|||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||||
| 17.11.2015, 22:43 | ||||||||
![]()
С точки зрения Саттера - нет.
0
|
||||||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 17.11.2015, 23:06 | ||
|
0
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 17.11.2015, 23:10 | ||
std::move у объекта состояние валидное, но не известно какое. И единственное, что безопасно можно сделать с таким объектом - удалить. Т.е. чтобы вызвался деструктор. Для объекта, у которого конструктор не завершился нормальным образом и речи быть не может о вызове деструктора.
1
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||||
| 17.11.2015, 23:13 | ||||||||
Добавлено через 1 минуту
0
|
||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||
| 17.11.2015, 23:17 | |||
![]() Можно. Но аборт юридически не считается убийством. Так и тут. Нет объекта, пока он не родился (не вышел успешно из конструктора).
0
|
|||
| 17.11.2015, 23:17 | |
|
Аналог перегрузки оператора индексирования (operator [])
Реализация перегрузки "operator +" для двух объектов Создание перегрузки метода "operator =" для типа, расположенного в ином namespace Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|