|
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 98
|
||||||
Конструктор класса15.04.2017, 21:46. Показов 4536. Ответов 33
Метки нет (Все метки)
Для чего используется второй конструктор, если при объявлении полей класса и так указывается их тип?
0
|
||||||
| 15.04.2017, 21:46 | |
|
Ответы с готовыми решениями:
33
Конструктор класса не видит конструктор по умолчанию другого класса Конструктор класса, конструктор копирования запускается не тот который нужен Конструктор производного класса требует конструктор предка |
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 17.04.2017, 17:34 | ||
|
0
|
||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|||||||
| 17.04.2017, 17:56 | |||||||
0
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||||||||||||||||||||||||
| 17.04.2017, 18:03 | |||||||||||||||||||||||||||||||||||||||
|
это - часть интерфейса управления, а не деталь реализации.
нужны исключительно для удобства пользования. наиболее актуально-востребованные что бы не писать каждый раз лишних буковок но есть "фиктивные" - синтаксические конструкции, которые имитируют поведение схожее с конструкторами классов. это было сделано для единообразия дизайна. так что можно смело полагать, что у примитивов их целых четыре: неявный дефолтный:
стандарт говорит, что дефолтного конструктора у примитивов нет. это нужно понимать так: память останется не инициализированной. так же, стандарт говорит, что у примитивов вообще нет конструктора. вообще, что такое "конструктор" ? это некоторая специальная функция, которая вызывается для того, что бы проинициализировать память неким осмысленным содержимым. по понятным причинам, для примитивов никаких специальных функций звать не нужно. в ячейку памяти напрямки будет записанное некое значение (или не записано) а вышеозначенные синтаксические записи не более чем фикция, которая имитирует поведение схожее с реальными конструкторами классов. однако, на практике, вот именно с точки зрения логики происходящего в программном коде, особенно это хорошо заметно на шаблонах:
что можно считать синтаксис инициализации примитивов вполне себе конструкторами. потому что на практике разницы между: "вызвали конструктор с параметром для инта", и "выполнили синтаксическую конструкцию языка" нет никакой абсолютно. а те, кто с пеной у рта доказывают, что конструкторов у них нет, с ссылкой на стандарт, имхо - просто зануды. пусть они это шаблонам языка доказывают.
0
|
|||||||||||||||||||||||||||||||||||||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 17.04.2017, 18:09 | ||
|
1) я не сталкивался с тем, когда у шаблона надо указать значение по умолчанию иначе я умру или пальцы умрут печатать тип для читабельности явно 2) с болью в сердце, иногда использую, но только в случаи с структурами так как тыц
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||
| 17.04.2017, 18:09 | ||||||||
|
есть запуск конструктора копии.
что между "синтаксисом инициализации", и "синтаксисом, который описывает запуск конструктора" на практике разницы нет никакой.
0
|
||||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|||||||
| 17.04.2017, 18:18 | |||||||
0
|
|||||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||||||
| 17.04.2017, 18:27 | ||||||||||
|
может использовать или прочитать, но при изменении на 198, без качественной pimpl архитектуре, мы можем идти за чаем. потом Петя снова поменяет - так зачем Коле вообще знать значение по умолчанию у объявления для всех классов??? Хочет Коля 400 и 500 - пусть всандалит их. Если уверен, что знач по умол его устроят какие бы они не были - так зачем Пете об этом писать в интерфейсе? Петя будет полностью прав, если не будет светить реализацией где попало.
надо побегать по файлам. И давайте вспоминать, что если по умолчанию таких много - для их контроля лучше применить, что-то такое https://refactoring.com/catalo... bject.html Каждый случай индивидуальный, так просто про всех не ответишь - но называть удобство, когда под ноги высыпаешь себе гвозди не классно. Сегодня ты улыбаешься как классно иметь int size = 50 - завтра ты плачешь, что что-то "выросло", а что-то должно остаться на 50-и ![]() Толку мне перенабирать текст) P.S. Как же приятно спорить с hoggy
0
|
||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 17.04.2017, 18:42 | |||
|
с тем же самым успехом Петя мог изменить название метода, или ещё что нибудь. нельзя просто так брать и менять интерфейс. меняем интерфейс - код вызывающей стороны летит к черту. в разработке есть такое понятие "легаси". знаете, что такое легаси? Кликните здесь для просмотра всего текста
знаете почему диаметр корпуса первых космических ракет был стандартным,
и именно таким, каков он был, а не каким то иначе? потому что цилиндрические корпуса для этих ракет доставлялись по железной дороге. а дорога шла через туннели. и вот диаметр этих туннелей и задавал ограничение на диаметр корпусов. а почему диаметр туннелей был именно таким? потому что их строили во времена, когда строили железную дорогу. и шпалы для дороги доставляли на двух лошадях, идущих параллельно друг другу. вот так и получается, что диаметр космических ракет - это легаси с двумя конскими задницами.
0
|
|||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|||||||
| 17.04.2017, 18:42 | |||||||
|
Это удобно и в некоторой степени защита от дурака. К тому же сокращает код. Можно конструкторы не громоздить.
0
|
|||||||
|
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
|
|
| 17.04.2017, 18:45 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 17.04.2017, 18:48 | |
|
0
|
|
| 17.04.2017, 18:49 | |
|
Не по теме: del
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|||
| 17.04.2017, 18:50 | |||
![]() Кликните здесь для просмотра всего текста
Без обид, просто hoggy ожидал ваш пост
0
|
|||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
||
| 17.04.2017, 19:01 | ||
|
И причин протестовать этому не вижу. Вы же протестуете зачем-то. Мою проблему?
0
|
||
| 17.04.2017, 19:01 | |
|
Конструктор внутри класса, поля которого являются членами другого класса Вызвать конструктор производного класса без конструктора базового класса
Создать конструктор копий и оператор присваивания для класса компьютер и члена класса марка В конструктор класса передать объект этого класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|