|
-2 / 8 / 2
Регистрация: 10.11.2008
Сообщений: 776
|
|
Отличие перегрузки operator() от конструктора16.11.2015, 14:21. Показов 5338. Ответов 51
Метки нет (Все метки)
Добрый день!
Подскажите пожалуйста, в чем отличие перегрузки operator() от конструктора, и почему нельзя простой объект передать в виде функционального объекта? Или можно?
0
|
|
| 16.11.2015, 14:21 | |
|
Ответы с готовыми решениями:
51
Перегрузки (operator+) Ошибка перегрузки конструктора
|
|
Неэпический
|
|||||||||||||
| 17.11.2015, 23:22 | |||||||||||||
0
|
|||||||||||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 17.11.2015, 23:23 | |
|
0
|
|
| 17.11.2015, 23:27 | |
|
0
|
|
| 17.11.2015, 23:29 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||||||||||||||||||||||
| 18.11.2015, 00:03 | ||||||||||||||||||||||||||||||||||||
|
что означает: полностью валидный, но не известно в каком именно. неконсистентный - означает, что находится в несогласованном состоянии. в кашу превратился. я думал это итак понятно из контекста моих речей. я лишь пытался донести до вас, что ни технически, ни синтаксически нет никакой разницы: фиктивные они, или где есть есть волшебный невидимый хидер, в котором описан класс интов. я попробую вам объяснить. рассмотрим несколько случаев:
Страуструп в своей книжке писал:
(не обязательно имя переменной. любая конструкция на языке, которая может обозначать объекты. например, конструкторы могут детонировать временные объекты, и тп, это понятно) нет имени - нет объекта. то есть, технически, кусок памяти может существовать. но в любом случае объект будет уже не доступен. теперь следующая вещь, которую нужно понимать: RAII. получение ресурса - есть инициализация. дизайн языка таков, что нельзя получить объект, не выполнив его инициализацию. это - неделимое целое. пока инициализация не выполнится, вы не получите в распоряжение имя, которое детонирует объект:
что в случае аварийного прерывания процедуры инициализации, мы никак не сможем сохранить имя объекта. а значит объекта у нас не окажется. таким образом, на период работы конструктора объект реален, this валидный. мы можем что-то делать с ним в этот период. но если что-то пойдет не так, то мы никак не сможем сохранить жизнь приложению, и при этом не выйти за пределы видимости имени, которое детонировало объект. Добавлено через 8 минут можно использовать любую операцию, которая наделяет объект определенным состоянием. например:
1
|
||||||||||||||||||||||||||||||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||
| 18.11.2015, 08:41 | |||||||
|
Старожилы форума может быть и будут тебя понимать теперь, но уж точно не читающие первый раз. Не по теме: В частности, когда систематически буквы путаешь:
Вернемся к термину "объект": А то получается с одной стороны - объекта нет пока он не проинициализирован. С другой - что объект уже существует в процессе инициализации. Нелогичность видна невооруженным взглядом. А всё потому, что "объект" в первом выражении не то же самое, что "объект" во втором. std::string например size() или clear().
0
|
|||||||
|
Неэпический
|
||||||||||||||||||||||
| 18.11.2015, 09:09 | ||||||||||||||||||||||
2
|
||||||||||||||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||||
| 18.11.2015, 20:15 | ||||||||||||||||||
|
дальше продолжите сами. объект существует. но снаружи у вас нет к нему доступа (не доступно имя, через которое к нему можно обратиться), до тех пор,пока не завершится инициализация. сама по себе мысль, что объекта не сущестует на момент инициализации где то уже за пределами здравого смысла. вы это осознаете? нельзя инициализировать то, чего не существует. у вас есть возможность контролировать процесс инициализации. при этом вы будете иметь полный доступ к объекту. можете менять его состояние как захотите. но если вылетит птичка - объект вы потеряете. неужели это так сложно понять? имя ниразу не доступно, пока не случится инициализация. в записи вида:
и увидеть его глазками. для тех, у кого нет дефолтных конструкторов, будет ошибка компиляции. но это ваши трудности. выкинет вас нахрен из области видимости имени, которое детонировало объект. вот в чем суть. а не в том, как на плюсах поиметь протухший труп. вот ещё один пример наглядно демонстрирующий особенность дизайна языка, а именно: невозможность законным образом получить доступ к объекту, для которого не была выполнена инициализация: http://rextester.com/RQNJ86790
но язык запрещает доступ к объектам, для которых не была выполнена инициализация.
1
|
||||||||||||||||||
| 18.11.2015, 20:47 | |
|
Не по теме: Вы бы с таким усердием лучше новые proposal'ы в комитет писали :D
0
|
|
|
Неэпический
|
||||||||
| 19.11.2015, 11:40 | ||||||||
3
|
||||||||
| 19.11.2015, 15:48 | |
|
Не по теме: Похоже, кое-кто сдетонировал :D и не смог этого признать.
0
|
|
| 19.11.2015, 15:48 | |
|
Аналог перегрузки оператора индексирования (operator [])
Реализация перегрузки "operator +" для двух объектов Создание перегрузки метода "operator =" для типа, расположенного в ином namespace Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
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
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|