Bevezetés a C ++ másolószerkesztőbe

A programozási nyelvek különféle funkciókat kínálnak, amelyeket ki lehet használni az alkalmazás fejlesztéséhez. A középszintű nyelvek esetében a szolgáltatások kevésbé lehetnek összehasonlítva a magas szintű nyelvekkel, de bármi is, amit kínálnak, bőségesen alkalmazható jelentős alkalmazások kifejlesztésére. Ebben a részben megismerjük a másolati konstruktorokat. A konstruktort úgy lehet meghatározni, mint egy speciális funkciót, amelynek a neve megegyezik a megadott osztályéval. A konstruktor automatikusan meghívásra kerül, amikor az osztály objektuma inicializálódik. Azt lehet mondani, hogy az objektum inicializálása, ha az osztály implicit módon meghívja a konstruktort. Ha a konstruktor túlterhelt, akkor ebben az esetben az értékeket át kell adni az objektummal együtt, miközben inicializálja. Itt a kivitelező típusa, amelyet megtanulunk, nagyon egyedi, és másoló-kivitelezőként ismert. Ez a konstruktor normál értékek helyett más objektumokat használ.

Hogyan működik a Copy Constructor a C ++-ban?

A Másolatkészítő úgy határozható meg, mint az a kivitelezőtípus, amelyet az objektum deklarálására és más objektumokkal való inicializálására használnak. A normál konstruktor akkor hívja meg, amikor az osztály objektuma inicializálódik. Ha a konstruktor több paraméterrel van túlterhelve, mint az objektum inicializálása és ugyanannyi argumentum átadása, akkor a túlterhelési paraméter hívódik meg. Mivel a másoló konstruktor a túlterhelt, így hívható, amikor az objektum inicializálása az argumentum segítségével történik, és az argumentumnak át kell adnia az objektum értékét, nem pedig a normál értéket.

Amint a túlterhelt konstruktor paraméterével kapott értéket objektumnak találja, a másolat-kivitelezőt meghívják, és a másolat-készítőn belül meghatározott utasításkészlet megkezdi a végrehajtást. A másoló-konstruktor használata előtt létre kell hoznunk egy objektumot ugyanabból az osztályból. Világosan megfogalmazza azt a megközelítést, hogy minden olyan programnak, amelynek másolatkészítőt kíván megvalósítani, legyen alapértelmezett vagy parametrizált konstruktora is, hogy az objektum létrejöhessen, amely elősegíti a másolatkészítő bevonását.

Az általános forgatókönyv úgy tekinthető, hogy egy objektum kihasználja egy másik objektum létrehozását. Az objektumhoz kötött összes értéket, amelyet az objektum másolás-kivitelező általi inicializálására használnak, az új inicializált objektum kapja meg. Ez azt jelenti, hogy ha az első objektum bármelyik változó értékét használja, akkor ugyanazt a változót használhatja az objektum is, amelyet a másolatkészítő inicializál. A másolatkészítő tulajdonságát nagyon fontosnak tekintik, és a fejlesztést nagyon kényelmessé teszi egyes alkalmazások számára. Jellemzői, hogy ugyanazon osztály objektumhivatkozását használják, elősegíti az alkalmazás kifejlesztését, amelynek követelménye csak a másoló-kivitelezővel teljesíthető. Annak ellenére, hogy nem használják olyan gyakran, mint az alapértelmezett vagy a paraméterezett konstruktor, bőségesen hozzájárul az új funkcionalitás hozzáadásához az alkalmazáshoz.

Példa

Megértsük a példát a másolat-készítő fogalmát. Itt egy egyszerű példán dolgozunk, amely megmutatja, hogyan működik a másoló-kivitelező, és hogyan tudja elérni azokat az értékeket, amelyeket az objektumhoz köttek, amellyel az új objektumot a másoló-konstruktor létrehozta. Az alábbi ábra ötletet ad arról, hogy mi a különbség a másoló-kivitelező meghívása, mint a normál túlterhelt kivitelező meghívása.

Program

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

Ebben a programban a paraméterezett konstruktort neveztük el, megkerülve az argumentumot az a1-en keresztül. Az átadott érték egész szám, mivel a paraméterezett konstruktort úgy határoztuk meg, hogy csak egész számot fogadjon el. Amikor az 50 értéket átadják a konstruktornak, az értéket hozzárendelik a var nevû változóhoz. Ezután az a1 objektumot az a2-en továbbították a másolat-készítőnek. Miután az objektumhivatkozást a másolatkészítő megkapta, az első objektumhoz hozzárendelt értéket az újonnan kialakított objektumhoz kötötte. Ez egy egyszerű példa a másolatkészítő fogalmának magyarázatára. Számos más programban felhasználható az alkalmazás különböző funkcióinak megszerzésére.

Kimenet:

60

A C ++ másolókészítőre vonatkozó szabályok és előírások

A Copy Constructor kissé különbözik az alapértelmezett vagy a paraméterezett konstruktortól. Egyrészt, ha a normál konstruktor a közös adattípus értékével működik, másrészt a másolási konstruktor ugyanabban az osztályban korábban létrehozott objektummal működik. A másolás-kivitelező használata során gondoskodni kell arról, hogy a másolat-készítőn átmenő paramétereket egy ampersand (&) jelvel együtt kell használni, mivel ez egy speciális karakter, amelyet az objektum-referencia tartására használnak. Ha az ampersand nem kerül felhasználásra a másoló-kivitelező megvalósítása közben, akkor ez már nem lesz másoló-konstruktor, hanem automatikusan paraméteres konstruktornak tekintendő.

A másoló-kivitelező meghívásakor meg kell győződnünk arról, hogy az argumentumokként megadott értéknek az objektumhivatkozásnak kell lennie, nem pedig a közös adattípushoz tartozó értéknek. Ez a néhány dolog, amelyet nagyon élesen figyelembe kell venni, amikor a másoló-konstruktort a C ++ programozási nyelven valósítják meg. Ezenkívül minden alkalommal, amikor a másoló-konstruktort használjuk, meg kell győződnünk arról, hogy megfelelően megkülönböztetjük-e a paraméterezett konstruktort, mivel ennek elmulasztása teljesen megváltoztatja a program funkcionalitását, és helytelen output-generációhoz vezet.

Következtetés

A másolat-kivitelezőt egy speciális kivitelezőnek tekintik, amely ugyanazon osztály objektumreferenciája alapján működik. Számos funkciót hoz létre az alkalmazásban. Ha összehasonlítjuk az alapértelmezett kivitelezővel, akkor a másoló-kivitelezőt nem nagyon gyakran használják az egyszerű programokban, de amikor a komplex alkalmazások fejlesztésére kerül sor, amelyeket a termelési környezetben telepíteni kell, akkor a másoló-kivitelezőt is ott használják, és ezenkívül az alkalmazások fejlesztését is kényelmessé teszik. .

Ajánlott cikkek

Ez egy útmutató a C ++ másolati konstruktorok számára. Itt tárgyaljuk a bevezetést és a Copy Constructor C ++ működését, valamint a C ++ Copy Constructor szabályait és előírásait. A következő cikkeket is megnézheti további információkért -

  1. Másoló kivitelező Java-ban
  2. Másoló konstruktor a C # -ben
  3. Kivitelező C ++-ban
  4. A konstruktor használata a C-ben
  5. A konstruktor típusai a C # kód bevezetésével

Kategória: