Skip to main content

Ano ang isang copy constructor?

Ang isang copy constructor ay isang espesyal na pag -andar sa C ++, at iba pang mga wika na naiimpluwensyahan ng C ++, na kinopya ang isang coding object.Ginagawa ito ng programmer sa pamamagitan ng pagdaragdag ng deklarasyon ng kopya ng konstruksyon at sumangguni sa isang bagay.Pangunahin, ito ay nakikinabang sa programmer sa pamamagitan ng pag -save ng oras, ngunit tinitiyak din nito na ang programmer ay hindi pumasok nang hindi tama ang coding ng bagay.Kapag ginawa ang kopya, dapat itong magkaroon ng ibang memorya ng memorya o ituturo nito sa parehong seksyon kung saan itinuturo ang orihinal na bagay.Ang isa sa mga pangunahing disbentaha ng paggamit ng mga konstruktor ng kopya ay hindi sila maaaring gumana nang nakapag -iisa;Kung ang orihinal na bagay ay mabura, kung gayon ang kopya ay magiging, pati na rin.

Kapag ang isang programmer ay gumagamit ng isang copy constructor, sinasabi niya ang code na kopyahin ang isang bagay na nakalista sa code.Upang gawin ito, ang programmer ay dapat munang gumamit ng isang deklarasyon upang sabihin ang coding upang maisagawa ang function ng kopya.Ang programmer ay dapat ding sumangguni sa isa pang bagay, kaya ang bagay ay dapat na itayo o walang paraan upang maisagawa ang kopya.Sa halip na muling i -type ang parehong mga pag -andar at pag -coding muli, ang programmer ay maaari lamang magdagdag ng isang sanggunian at ang bagay ay magiging handa.Mayroon itong isa pang nakatagong benepisyo sa pare -pareho at tumpak na coding.Hangga't ang orihinal na bagay ay naka -code nang tama, ang kinopya na bagay ay magkakaroon din ng tamang coding.Parehong mga benepisyo na ito ay pinaka -maliwanag sa mga kumplikadong bagay, ngunit ang mga programmer ay maaari ring makinabang mula sa pagkopya ng mga simpleng bagay.

Sa mga wika ng C ++, maraming mga pag -andar ang nangangailangan ng isang pointer ng memorya.Sinasabi nito ang pag -andar nang eksakto kung saan titingnan ang memorya para sa ilang impormasyon, o kung saan maaari itong mag -imbak ng data.Dapat tukuyin ng programmer ang isang bagong pointer ng memorya kapag ginagamit ang isang copy constructor;Kung hindi man, ang dalawang bagay ay gagamit ng parehong puwang ng memorya.Sa ibabaw, maaaring hindi ito masama, ngunit maaari itong humantong sa hindi pagkakapare -pareho.Halimbawa, kung ang parehong mga bagay ay nagbabahagi ng parehong pointer at isang bagay ay ginagamit upang magsumite ng mga aplikasyon ng pautang habang ang kinopya na bagay ay ginawa upang magsumite ng mga aplikasyon ng credit card, kung gayon ang lahat ng mga aplikasyon ng credit card ay maiimbak sa mga aplikasyon ng pautang.Maging maingat sa pagtanggal ng isang bagay, dahil ang mga object ng Copy Constructor ay hindi maaaring gumana nang nakapag -iisa.Kung tinanggal ng programmer ang orihinal na bagay, kung gayon ang kinopya na bagay ay walang sanggunian.Nang walang code na sanggunian, ang kinopya na bagay ay hindi magagawang maisagawa ang gawain nito at magiging walang silbi.