Перегруженный конструктор класса

Оцени эту статью




перегруженный конструктор класса с++, основы программирования для начинающих, c++ с нуля

В статье Конструктор и деструктор класса мы уже встречались с перегруженным конструктором в коде, но не акцентировали на этом внимание. Перегрузка конструкторов очень схожа с перегрузкой функций. Конструкторов в определяемом классе может быть несколько — по мере необходимости. Они должны иметь одинаковое имя, идентичное имени класса и обязательно должны отличаться сигнатурой. Например: один из конструкторов не принимает параметры, второй принимает два параметра, третий принимает три параметра. Позже, во время создания объекта, параметры передаются в качестве аргументов. Так компилятор сможет определить, какой из объявленных конструкторов применить при создании объекта.

Рассмотрим пример:

перегруженный конструктор класса с++, основы программирования для начинающих, c++ с нуля На этом примере достаточно легко увидеть, чем вызвана необходимость перегрузки конструкторов. Основной смысл в том, чтобы дать возможность программисту выбрать наиболее подходящий способ инициализации объекта.

Тут представлен самый распространенный вариант перегрузки конструкторов. А именно конструктор с параметрами и второй без параметров. Часто, программисту бывают необходимы оба подобных конструктора, так как конструктор с параметрами удобно использовать, работая с одиночными объектами. Но он не может быть использован, например, для инициализации динамического массива объектов класса.

При каждом объявлении объекта класса надо применять соответствующий определённым конструкторам способ объявления.

Конструктор можно перегружать столько раз, сколько посчитаете нужным. Но, как бывает у большинстве случаев, желательно придерживаться золотой середины. Перегружайте его только для наиболее распространенных ситуаций.

Хочется добавить, что деструктор, в отличии от конструктора, перегружен быть не может, так как он никаких параметров не принимает.

Чтобы поддержать наш сайт — нажмите на копилку и выберите любой удобный способ.

Рассылка новых уроков по программированию:

Перегруженный конструктор класса: 1 комментарий

  1. Здесь хорошо бы добавить:
    — если вы описываете класс без описания конструктора вообще, то для класса создаётся конструктор по умолчанию без параметров;
    — но как только вы добавляете хотя бы один конструктор, умалчиваемый конструктор без параметров уж не создаётся (это может потом озадачить при создании объектов);
    — если же всё-таки нужен и конструктор без параметров, в том числе, то его нужно описать явно.

    И ещё…
    Часто вместо описания нескольких конструкторов удобно создать один конструктор, но с несколькими параметрами, определёнными с умалчиваемыми значениями:

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

Код размещайте в тегах: <pre class="lang:c++ decode:true ">YOUR CODE</pre>