[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
Hej Nu har det drillet mig længe nok. Jeg har defineret et base objekt kaldet Cbase som ikke kan noget, og fra det har jeg nedarvet to nye objekter, som her er kaldt Ca og Cb. De virker fint nok således: Ca a; Cb b; a.test(); b.test(); Nu er det lidt bøvlet at jeg skal kalde dem begge alle steder i koden, og der kunne meget nemt komme flere obejkter til som også skal kaldes. Jeg tænkte om ikke en hægtet liste ville være løsningen. Noget i retning af: Clink link; // og så tilføjer jeg nogle objekter link.add(new Ca()); link.add(new Cb()); Så vil jeg gerne have kaldt begge objekter nu: link.test(); men det lader til at det er Cbase som jeg kalder, og ikke Ca og Cb som jeg havde håbet på. add-funktionen er defineret som: void Clink::add(Cbase *newnode) { Det første objekt burde kunne kaldes ved: link.head->obj->test(); hvilket jeg må have misforstået, for det er Cbase.test() der bliver kaldt. Alle objekter skulle kunne kaldes med Cbase *temp = head; while (temp) { temp->obj->test(); temp = obj->next; } eller noget i den retning. Det må kunne implementeres meget elegant. Kender du et godt eksempel på det? De eksempler jeg har fundet viser bare nogle data i en hægtet liste, men jeg har jo objekter i min liste. For nemheds skyld har jeg lille eksempel der ikke virker: http://www.sslug.dk/~chlor/cpp/linked.cpp.txt Måske er det bare en lille ting jeg misforstår. /hans -- Hamletsgade 4 - 201, DK-2200 København N, Phone: +45 3582 9079 Schou Industries ApS http://schou.dk/ CVR: 26 13 44 39 -------------------------------------------------------------- If creativity is the field, copyright is the fence. -- John Oswald
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |