Будет ли определен компилятором конструктор по умолчанию, если есть конструктор с дефолтным параметром?22.07.2015, 15:24. Показов 3104. Ответов 24
Метки нет (Все метки)
Добрый день, сразу к делу, есть некий класс
Или вызовется конструктор с одним аргументом и произойдет подстановка значения по умолчанию?
0
|
||||||
| 22.07.2015, 15:24 | |
|
Ответы с готовыми решениями:
24
Конструктор с параметром по умолчанию
|
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||
| 22.07.2015, 15:34 | ||
|
Да, значение параметра по умолчанию позволяет этому конструктору выступать в качестве конструктора по умолчанию. А отсутствие ключевого слова explicit - ещё и в качестве оператора неявного преобразования из int.
1
|
||
| 22.07.2015, 15:46 [ТС] | ||||||
|
Nick Alte, castaway, а в таком классе будет создан конструктор по умолчанию?
0
|
||||||
|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
|
| 22.07.2015, 15:48 | |
|
А еще можно запустить программу и проверить, что он тебе сконструирует.
0
|
|
| 22.07.2015, 15:49 [ТС] | ||
|
Добавлено через 34 секунды Eraston, сейчас нахожусь не дома, компиля под рукой нет, т.к. еду в поезде, читаю книгу)
0
|
||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||||
| 22.07.2015, 15:50 | ||||
|
Добавлено через 46 секунд
0
|
||||
| 22.07.2015, 15:55 [ТС] | |||||||||||
|
Nick Alte, то есть произойдет ошибка компиляции, раз конструктор по умолч. не будет создан?
0
|
|||||||||||
|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
|
| 22.07.2015, 15:59 | |
|
Ferrari F1, вообще, если вы описываете хоть один конструктор или деструктор, то вы автоматически должны самолично описать и конструктор по умолчанию, и конструктор копирования по умолчанию, и деструктор.
Добавлено через 2 минуты Ferrari F1, связано с тем, что описание своих конструкторов подразумевает работу с указателями и иже с ними, соответственно, обязательно необходимо наличие свобственно-описанных конструкторов и деструктора (для правильного высвобождения памяти)
0
|
|
| 22.07.2015, 16:02 [ТС] | |
|
Eraston, я знаю, каковы правила хорошего стиля прогаммирования, сейчас же меня интересуют ответы на заданные ранее вопросы.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||||
| 22.07.2015, 16:07 | ||||||||
|
Просто в первом случае конструктор по умолчанию не создал никто, ни компилятор (из-за наличия пользовательского конструктора), ни пользователь, т.к. не написал конструктор по умолчанию. А во втором случае, компилятор по прежнему ничего не создавал, зато пользователь сделал конструктор по умолчанию самостоятельно (путем задания дефолтового значения единственному параметру). Т.е. в книге все верно написано.
0
|
||||||||
|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
|
| 22.07.2015, 16:07 | |
|
0
|
|
| 22.07.2015, 16:12 [ТС] | ||||||
|
DrOffset, Eraston, а при
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|
| 22.07.2015, 16:16 | |
|
0
|
|
| 22.07.2015, 16:19 [ТС] | ||||||
|
Ilot,
ааа, вот это я и хотел понять А еще вопрос:
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|
| 22.07.2015, 16:32 | |
|
0
|
|
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|||||||
| 22.07.2015, 16:34 | |||||||
0
|
|||||||
| 22.07.2015, 16:38 [ТС] | ||||||
|
DrOffset, а в таком примере придется писать свой метод (не конструктор) для преобразования int в some?
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||
| 22.07.2015, 16:46 | |||||||
|
Добавлено через 2 минуты Либо можно сделать оператор присваивания, принимающий int. Это будет эффективней.
0
|
|||||||
| 22.07.2015, 16:46 | |
|
Помогаю со студенческими работами здесь
20
Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно? Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор Почему нельзя в конструкторе использовать параметр по умолчанию, если конструктор не встроен? Почему нехорошо себя ведёт конструктор класса (не компилится ничё), если ему параметром ссылку на константу? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|