Введение в конструктор копирования в C ++

Языки программирования предоставляют нам различные функции, которые можно использовать для разработки приложения. В случае языков среднего уровня возможности могут быть меньше по сравнению с языками высокого уровня, но любые варианты, которые они предлагают, достаточны для разработки важных приложений. В этом разделе мы узнаем о конструкторах копирования. Конструктор может быть определен как специальная функция, имя которой совпадает с именем класса, в котором она была определена. Конструктор вызывается автоматически при инициализации объекта этого класса. Можно сказать, что инициализация объекта, если класс неявно вызывает конструктор. Если конструктор перегружен, тогда значения должны передаваться вместе с объектом при его инициализации. Здесь тип конструктора, который мы будем изучать, очень уникален и известен как копирующий конструктор. Этот конструктор работает с использованием других объектов, а не нормальных значений.

Как работает Copy Constructor в C ++?

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

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

Общий сценарий может рассматриваться как использование одного объекта для создания другого объекта. Все значения, связанные с объектом, который используется для инициализации объекта конструктором копирования, распределяются по вновь инициализированному объекту. Это означает, что если значение какой-либо переменной используется первым объектом, эта же переменная может использоваться объектом, инициализированным конструктором копирования. Функция конструктора копирования считается очень важной и делает разработку очень удобной для некоторых приложений. Его возможности использовать ссылку на объект того же класса помогают в разработке приложения, которое имеет требование, которое может быть выполнено только с помощью конструктора копирования. Хотя он используется не так часто, как конструктор по умолчанию или параметризованный конструктор, он обладает достаточными возможностями для добавления новых функций в приложение.

пример

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

программа

#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )
#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )

В этой программе мы вызвали параметризованный конструктор, минуя аргумент через a1. Переданное значение является целым числом, так как параметризованный конструктор был определен для приема только целых чисел. Когда значение 50 передается конструктору, это значение присваивается переменной с именем var. Затем объект a1 был передан конструктору копирования через a2. Как только ссылка на объект получена конструктором копирования, она связывает значение, назначенное первому объекту, с вновь сформированным объектом. Это простой пример, объясняющий концепцию конструктора копирования. Это может быть использовано в нескольких других программах для получения различных функциональных возможностей приложения.

Выход:

60

Правила и положения для конструктора копирования в C ++

Конструктор копирования считается немного отличным от конструктора по умолчанию или параметризованного. С одной стороны, где обычный конструктор работает с использованием значения общего типа данных, с другой стороны, конструктор копирования работает с использованием ранее созданного объекта того же класса. При использовании конструктора копирования необходимо убедиться, что параметры, передаваемые через конструктор копирования, должны использоваться вместе со знаком амперсанда (&), поскольку это специальный символ, используемый для хранения ссылки на объект. Если амперсанд не используется при реализации конструктора копирования, он больше не будет конструктором копирования, а будет автоматически рассматриваться как параметризованный конструктор.

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

Вывод

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

Рекомендуемые статьи

Это руководство по копированию конструкторов в C ++. Здесь мы обсуждаем введение и «Как работает конструктор копирования в C ++ вместе с правилами и правилами для конструктора копирования в C ++». Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Копировать конструктор в Java
  2. Копировать конструктор в C #
  3. Конструктор в C ++
  4. Использование конструктора в C
  5. Типы конструктора в C # с реализацией кода