Azt tudom miért szükséges az alapértelmezett másoló konstruktor helyett írni egyet, de nem értem mi értelme van megvalósítani az operator=?
Az alapértelmezett másoló konstruktor úgy működik ha dinamikus memóriában levő adatokat kell másolni,hogy a másolt objektum mutatói ugyanarra a helyre fognak mutatni mint az originál így ha bármelyiket is töröljük az a program összeomlásához vezet ha bármelyik objektumon keresztül újra el akarjuk érni az adattagot.Ezért kell újat írnunk.
Az operator egyenlő esetében nincs erre szükség mert felesleges újra törölni majd lefoglalni egy helyet a heapen.
Hisz a bal oldal és a jobb oldalon levőknek nem ugyanazon a címen tárolódik az értékük.
Akkor miért kell megírni az operator= ha dinamikusan tárolt változók esetében tökéletesen működik.
Ezt gondold újra!
A magyarázat helyett egy példát írtam: [link]
Persze nem szép dolog így direkt elérni a tagváltozókat, de ez csak egy példa akart lenni az = operátor működésére.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!