Skip to main content

Mi az a másolási konstruktor?

A másolat -konstruktor egy speciális funkció a C ++ -ban, és a C ++ által befolyásolt egyéb nyelveken, amely egy kódoló objektumot másol.A programozó ezt úgy végzi, hogy hozzáadja a Copy Constructor deklarációt és hivatkozik egy objektumra.Elsősorban ez az időmegtakarítás révén a programozó számára előnyös, de azt is biztosítja, hogy a programozó ne írja be az objektum kódolását helytelenül.A másolat elkészítésekor más memória mutatóval kell rendelkeznie, vagy ugyanazon szakaszra mutat, amelyre az eredeti objektum mutat.A másolási konstruktorok használatának egyik fő hátránya, hogy nem tudnak önállóan működni;Ha az eredeti objektumot töröljük, akkor a másolat is lesz.Ehhez a programozónak először egy nyilatkozatot kell használnia, hogy megmondja a kódolást a másolás funkció végrehajtásához.A programozónak egy másik objektumra is hivatkoznia kell, tehát az objektumot már meg kell építeni, vagy a másolat végrehajtásának nem lesz módja.Ahelyett, hogy ugyanazokat a funkciókat és a kódolást újra be kell írnia, a programozó csak hozzáadhat egy referenciát, és az objektum készen áll.Ennek egy újabb rejtett előnye van a következetes és pontos kódolásban.Mindaddig, amíg az eredeti objektum helyesen van kódolva, a másolt objektumnak is megfelelő kódolása lesz.Mindkét előnye a leginkább a komplex objektumoknál nyilvánvaló, de a programozók számára előnyös lehet az egyszerű objektumok másolása is.Ez megmutatja a funkciót, hogy pontosan hol kell keresni a memóriában bizonyos információkhoz, vagy hol tudja tárolni az adatokat.A programozónak meg kell határoznia egy új memória mutatót, amikor másolat -konstruktorot használnak;Ellenkező esetben a két objektum ugyanazt a memóriaterületet fogja használni.A felszínen ez nem tűnik rossznak, de következetlenségekhez vezethet.Például, ha mindkét objektum ugyanazt a mutatót osztja meg, és egy objektumot használ a hitelkérelmek benyújtására, miközben a másolt objektum hitelkártya -kérelmek benyújtására készül, akkor az összes hitelkártya -kérelmet a hitelkérelmekkel tárolják.

A programozóknak kellVigyázzon az objektum törlésére, mert a Copy Constructor objektumok nem működhetnek egymástól függetlenül.Ha a programozó törli az eredeti objektumot, akkor a másolt objektumnak nincs mit hivatkozni.Ha nincs referenciakód, a másolt objektum nem lesz képes elvégezni a feladatát, és haszontalanná válik.