Path: news.cs.au.dk!not-for-mail From: "Jorgen Lindskov Knudsen" Newsgroups: daimi.beta Subject: Re: cloning af objecter Date: Wed, 18 Oct 2000 08:37:33 +0200 Organization: University of Aarhus, Department of Computer Science (DAIMI) Lines: 67 Message-ID: <8sjgc1$565ua$1@gjallar.cs.au.dk> References: <39EC0E3F.8AFD7B8F@cs.au.dk> <39EC7AC0.E17405FE@cs.au.dk> <39EC7BB4.F3A73A04@cs.au.dk> NNTP-Posting-Host: corona.cs.au.dk X-Trace: gjallar.cs.au.dk 971850945 5445578 130.225.16.173 (18 Oct 2000 06:35:45 GMT) X-Complaints-To: usenet@cs.au.dk NNTP-Posting-Date: Wed, 18 Oct 2000 06:35:45 +0000 (UTC) X-Newsreader: Microsoft Outlook Express 4.72.3110.5 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Xref: news.cs.au.dk daimi.beta:10507 BETA har ikke nogen indbygget mulighed for at klone et objekt. Michael's svar nedenfor giver _ikke_ en kloning, blot to referencer til samme objekt (nemlig den statiske reference 'repetition[i]' og den dynamiske reference 'reference'. Hvis du ændrer en attribut via 'repetition[i]' vil det jo betyde, at hvis du efterfølgende aflæser samme attribut via 'reference', så er den også ændret. Det almindelige måde at implementere kloning på i BETA er ved at erklære en 'clone' operation i klassen: P: (# attr1, attr2, attr3: @Q; clone:< (# pClone: ^P do &P[]->pClone[]; (* kopier værdierne af attr1-3 over i * pClone.attr1, pClone.attr2, pClone.attr3 *) exit pClone[] #); Hvis nu du har: repetition: [10]@P; kan du klone ved at lave: repetition[i].clone->reference[] Håber, at det hjælper. --- jlk Michael Westergaard wrote in message <39EC7BB4.F3A73A04@cs.au.dk>... >Michael Westergaard wrote: >> >> Jacob Frolund Pedersen wrote: >> > >> > Hej.. >> > >> > Hvis man i beta skal lave en kopi af et object som ligger i en >> > repetition hvordan gør man så? >> > >> > Jeg har en obj. på plads i og vi så gerne have en kopi over i en >> > dynamisk reference. >> > >> > /Jacob Pedersen >> >> repetition[i][]->reference ? >> > >ups... selfølgelig: > >repetition[i][]->reference[] > > >-- > _______ > / \ Michael Westergaard > / /|/| \ \ u991875@cs.au.dk >( ( ` | ) ) > \ \ |/\/ / http://www.cs.au.dk/~u991875 > \_______/