С++ для начинающих Конструктор Класса

Сайт не является учебником по программированию. Это только небольшой авторский сборник информации в помощь начинающим программистам.

Первый и самый логичный вопрос что такое конструктор в C++.
Определение из Википедии

  • В объектно-ориентированном программировании конструктор класса (от англ. constructor, иногда сокращают ctor) — специальный блок инструкций, вызываемый при создании объекта.

   Прочитал и сразу понял, что всем тут все понятно из такого определения..
Попробовал еще поискать

  • Конструктор C++ — это особый метод, имеющий имя, совпадающее с именем класса.
  • Конструктор – это помощник инициализации элементов класса для инициализации их внутри класса.

Думаю пора привести пример.
Код C++ Конструктор класса

В общем код достаточно простой, но думаю для начинающих нужен подробный разбор. Важный момент то, что объекты конструируются до входа в функцию main(). В коде очистка экрана прописана дважды. Первый раз нужен для очистки экрана во время запуска программы, а второй для очистки перед завершением (закомментировано). Так как объекты конструируются до вызова функции main(), то получается эффект, когда вводится 3 числа, а выводится 2.

При самом первом запуске сначала вводятся 3 числа, непосредственно после этого очищается экран, а далее выводится не 3, а 2 числа. Видите, внутри функции main() нету ничего об obj3, но тем не менее объект obj3 конструируется. Потому как объекты конструируются до входа в main(), то после начала работы main() объекты obj1,obj2,obj3 уже существуют и, следовательно, внутри main() нет ничего, что вызывает их конструкторы. Но внутри main() есть обращения к методам уже существующих объектов. Так как сейчас таких обращения 2 (obj1.Show(); , obj2.Show();), то и выводится только 2 числа, а не 3.
При втором запуске эти 2 числа остаются на экране, ибо их не стерли, конструируются объекты, и уже затем чистится экран (если не убирать комментарий в очистке).

Для того чтобы очистить экран полностью, нужно раскомментировать последний clrscr();, таким образом экран почистится на самом последнем этапе выполнения программы, перед её завершением.

В С++ Имя конструктора должно совпадать с именем класса. Допускается использовать несколько конструкторов с одинаковым именем, но различными параметрами. В приведенном примере конструктор объявлен внутри класса в разделе public

Конструктор схож с методом, но отличается от метода тем, что не имеет явным образом определённого типа возвращаемых данных. Даже типа void он не возвращает
Напоминаю, что метод это функция внутри класса
При запуске программы первым делом конструируется объект. Следовательно все что описано до объектов сначала пропускается. Происходит вызов Show() из раздела public класса MyClass(). Во время этого вызова сначала срабатывает конструктор. В теле конструктора прописан код, который осуществляет вывод на экран предложение ввести значение и выполняется считывание значения с клавиатуры. После выполнения конструктора для первого объекта, сразу запускается конструктор для следующего и выполняет те же действия. После того как значения были введены, выполняется функция main(). Очищается экран, выполняется метод Show() сначала для obj1, потом для obj2. После этих операций выполняется ожидание нажатия Enter и после нажатия выполняется “генеральная уборка” Очищается экран и происходит выход из функции.
В общем пора резюмировать самое важное

  • Прямая инициализация элементов класса при описании класса не допускается
  • Конструктор – это помощник инициализации элементов класса для инициализации их внутри класса
  • Конструктор класса предназначен для присваивания начального значения элементу класса вовнутрь класса
  • Конструктор – специальный вид инструкций, вызываемый во время создания объекта
  • Конструктор выполняется только один раз. В момент создания объектов
  • Конструктор всегда имеет то же имя, что и у класса
  • Конструктор автоматически вызывается при создании объекта (создании экземпляра класса)
  • Конструктор никогда не возвращает значение
  • Объекты конструируются до входа в функцию main()
  • Один из способов объявления конструктора – это внутри класса в разделе public (Это было использовано в примере) (кроме этого есть другие способы объявления конструктора)

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

10 комментариев: С++ для начинающих Конструктор Класса

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     
Яндекс.Метрика

НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Демотиватор как забыть С++ для чайников

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок