09. juni 2003 - 10:53
Der er
7 kommentarer og 1 løsning
operator overload og constructor
Hej Jeg skal snart til eksamen i programmering og vil gerne vide noget om operator overload og copyconstructor. copyconstructor skal bruges når man skal kopiere et objekt, men det er da også det operator overload bruges til ikke?
Annonceindlæg fra DE-CIX
Operator overload et implementering af gængse operatorer +-*= etc. for en klasse. Copy constructor er ikke det samme som = operator (selvom de normalt nok har samme funktionalitet). Copy constructor bruges til et implicit assignment.
Det sidste er vist ikke helt rigtigt. Initiering bruger copy constructor og der er faktisk et ligheds tegn (men det er ikke et rigtigt assignment).
jeg forstår godt meningen (lidt), men kan du ikke vise et lille eksempel med brug af overload operator og copyconstructor?
jeg har lige læst lidt mere. og jeg forstår nu at operator overload bruges ved f.eks. man vil sammenligne to lister liste1 == liste2 osv. men copyconstructor, bruges den ikke til det samme som hvis man overloader ' = ' ? liste1 = liste2?
klasse() klasse(klasse &item) //copy constructor.. kopierer et objekt i et andet. main() { klasse kl1; klasse kl2; kl1=kl2; // Dette kunne skrives kl2(kl1) så bruges copyconstructor istedet, men begge linjer gør det samme. am I correct?
klasse kl1; klasse kl2 = kl1; // kalder copy construtor kl1 = kl2; // kalder assignment operator
ok. så forstår jeg det. takker for svaret
Og hvis man så skal være rigtig smart så lader man copy constructor og assignment begge kalde en function fx. Copy(medPassendeArgumenter) som så laver det reele arbejde.
Kurser inden for grundlæggende programmering