Avatar billede MrJ Praktikant
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?
Avatar billede arne_v Ekspert
09. juni 2003 - 10:59 #1
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.
Avatar billede arne_v Ekspert
09. juni 2003 - 11:02 #2
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).
Avatar billede MrJ Praktikant
09. juni 2003 - 11:06 #3
jeg forstår godt meningen (lidt), men kan du ikke vise et lille eksempel med brug af overload operator og copyconstructor?
Avatar billede MrJ Praktikant
09. juni 2003 - 11:43 #4
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?
Avatar billede MrJ Praktikant
09. juni 2003 - 11:50 #5
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?
Avatar billede arne_v Ekspert
09. juni 2003 - 12:35 #6
klasse kl1;
klasse kl2 = kl1; // kalder copy construtor
kl1 = kl2; // kalder assignment operator
Avatar billede MrJ Praktikant
09. juni 2003 - 13:17 #7
ok. så forstår jeg det.

takker for svaret
Avatar billede segmose Nybegynder
10. juni 2003 - 12:04 #8
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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester