Простейший конструктор без аргументов создается автоматически
Между тем, пока в классе не был определен конструктор, проблем с объявлениями не возникало. Дело в том, что по правилам С++ (см. п. п. 12.1/5 в [1]) простейший конструктор без аргументов создается автоматически. Но стоит нам определить хотя бы один конструктор явным образом, С++ «умывает руки» и полагается на программиста. Вспомним, каким образом мы можем объявить структуру:
• без инициализации:
TMoney t;
• с инициализацией полей:
TMoney t = {0.0}:
? с инициализацией другой, уже объявленной структурой:
TMoney г = t:
Соответственно и видов конструкторов в классе должно быть столько же. Если в вашей квартире сломался холодильник, то купить его можно тут - купить холодильник донецк недорого.
Первый конструктор, который не имеет аргументов (см. п. п. 12.1/5 в [1]) и создается автоматически, если конструкторы не определены, называется конструктором по умолчанию. Создаваемый системой конструктор имеет вид
class<){}
Его наличие в классе делает возможным объявления первого вида. Второй — это конструктор инициализации, именно его мы реализовали. Наличие такого конструктора обеспечивает инициализацию полей класса. Если он определен, то использовать стандартную форму инициализации полей нельзя — надо писать вызов конструктора. Вообще-то говоря, конструкторов инициализации, как правило, бывает несколько — мы увидим это в дальнейшем.
Опубликовал Kest
August 28 2013 14:31:01 ·
0 Комментариев ·
3640 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.