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

Езиците за програмиране ни предоставят различни функции, които могат да се използват за разработване на приложението. В случая на езици от средно ниво, функциите може да са по-малко в сравнение с езиците на високо ниво, но каквито и опции да предлагат са достатъчни за разработване на значими приложения. В този раздел ще научим за копиращите конструктори. Конструкторът може да бъде дефиниран като специалната функция, чието име е същото като това на класа, в който е дефинирано. Конструкторът се извиква автоматично, когато обектът от този клас се инициализира. Може да се каже, че инициализирането на обекта, ако класът имплицитно извиква конструктора. Ако конструкторът е претоварен, в този случай стойностите трябва да бъдат предадени заедно с обекта, докато го инициализират. Тук типът конструктор, на който ще се учим, е много уникален и известен като Конструктор за копиране. Този конструктор работи, използвайки други обекти, а не нормални стойности.

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

Copy Constructor може да бъде определен като специален тип конструктор, който се използва за деклариране на обекта и инициализиране на същия с помощта на други обекти. Нормалният конструктор се извиква, когато обектът от този клас се инициализира. Ако конструкторът е претоварен с няколко параметъра, отколкото инициализиране на обекта и предаване на същия брой аргументи, ще извика параметъра на претоварване. Тъй като конструкторът на копия е претовареният, така че може да бъде извикан, когато обектът се инициализира с помощта на аргумента и аргументът трябва да предаде обектна стойност, а не някаква нормална стойност.

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

Общият сценарий може да се счита за използване на един обект, за да се създаде друг обект. Всички стойности, свързани с обекта, който се използва за инициализиране на обекта чрез конструктор на копия, се разпределят към новоинициализирания обект. Това означава, че ако стойността на която и да е променлива се използва от първия обект, същата променлива може да бъде използвана от обекта, който се инициализира от конструктора на копиране. Характеристиката на конструктора на копия се счита за много важна и прави разработката много удобна за някои приложения. Характеристиките му да използва препратката към обект от същия клас помага при разработването на приложението, което има изискването, което може да бъде изпълнено само с помощта на конструктора на копия. Въпреки че не се използва толкова често, колкото конструктор по подразбиране или параметризиран конструктор, е достатъчно мощност да допринесе за добавяне на нова функционалност към приложението.

пример

Нека разберем концепцията за конструктор на копия, като използваме примера. Тук ще работим върху прост пример, който ще ви покаже как работи конструкторът за копиране и как може да получи достъп до стойностите, които бяха свързани към обекта, с помощта на който новият обект е създаден от конструктора на копия. По-долу илюстрацията ще ви даде представа за това как е различно да се нарича конструктор на копие в сравнение с извикване на нормалния претоварен конструктор.

програма

#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 ++

Copy Constructor се счита за малко по-различен от конструктора по подразбиране или параметризиран. От една страна, когато нормалният конструктор работи, използвайки стойността на общ тип данни, от друга страна, конструкторът за копиране работи, използвайки предварително създадения обект от същия клас. Нещото, което трябва да се гарантира при използване на конструктор за копиране, е, че параметрите, предавани през конструктора за копиране, трябва да се използват заедно със знак ampersand (&), тъй като това е специален символ, който се използва за задържане на референтния обект. Ако ampersand не се използва по време на реализирането на конструктора на копия, той вече няма да бъде конструктор на копия, но автоматично ще се счита за параметризиран конструктор.

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

заключение

Конструкторът за копиране се счита за специален вид конструктор, който работи, използвайки препратката към обекта от същия клас. Използва се за въвеждане на няколко функционалности в приложението. Ако се сравнява с конструктора по подразбиране, конструкторът за копиране не се използва много често в простите програми, но когато става въпрос за разработване на сложни приложения, които трябва да бъдат внедрени в производствената среда, конструкторът за копиране се използва там и също така прави разработката на приложения доста удобна,

Препоръчителни статии

Това е ръководство за копиране на конструктори в C ++. Тук обсъждаме въвеждането и как Копиращият конструктор работи в C ++, заедно с Правилата и Регламента за конструктора на копията в C ++. Можете също да разгледате следните статии, за да научите повече -

  1. Копиране на конструктор на Java
  2. Копие конструктор в C #
  3. Конструктор в C ++
  4. Използване на Constructor в C
  5. Видове конструктор в C # с изпълнение на код