🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #8862

Re: Vraag over operator overloading

#8862
From: Christof Laeremans
Date: Fri, 07 Jun 2002 18:17
52 lines
2534 bytes
On 6/7/02 3:49 PM, in article
20020607154936.3695d4b7.johan@gewestpallieter.be, "Johan Vervloet"
<johan@gewestpallieter.be> wrote:

> De operator= moet normaalgezien het huidige getal wijzigen.
> Wat jij doet :
> 
>> Getallen Getallen::operator= (const Getallen & g) const
>> {
>>     
>>     Getallen temp;
>>     
>>     temp._getal = g._getal;
>>     
>>     return temp;
>> }
>> 
> 
> maakt een nieuw getal aan (temp), kopieert de gegevens van g naar temp,
> en geeft temp weer als terugkeerwaarde.  Het getal waar de operator= op
> moet werken blijft dus onveranderd, en dat is niet de bedoeling.  Je
> moet geen nieuw getal maken, maar het huidige wijzigen.
> 
> Dit is hoe je functie eruit zou moeten zien :
> 
> Getallen& Getallen::operator= (const Getallen & g)
> {
>    _getal = g._getal;
>    
>    return *this;
> }
> 
> Merk op dat de `const' achteraan verdwenen is.  Die mag er niet blijven
> staan, aangezien het object waarop operator= werkt niet constant blijft
> (je gaat het een nieuwe waarde geven).
> 
> Het returnen van *this zorgt ervoor dat constructies zoals
> 
> g1 = g2 = g3
> 
> ook naar behoren werken (maar eventueel kan je van je operator= ook een
> void functie maken en niets returnen).
> 
> 
> Groet - Johan
> 

Bedankt voor de uitleg, het is zo duidelijk als popwater !

Mvg,

Christof
Technical Details
Message-ID: <B926C551.624C%christof_laeremans@hotmail.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!supernews.com!news.infoave.net!newsfeed.frii.net!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!skynet.be!skynet.be!news.be.wanadoo.com!news.wanadoo.be!not-for-mail
References: <B9267BCD.622D%christof_laeremans@hotmail.com> <20020607154936.3695d4b7.johan@gewestpallieter.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,ea2d507e20e1aa17
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-06-07 11:21:39 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!supernews.com!news.infoave.net!newsfeed.frii.net!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!skynet.be!skynet.be!news.be.wanadoo.com!news.wanadoo.be!not-for-mail
From: Christof Laeremans <christof_laeremans@hotmail.com>
Newsgroups: be.comp.programming
Subject: Re: Vraag over operator overloading
Date: Fri, 07 Jun 2002 20:17:21 +0200
Organization: Wanadoo Belgium
Lines: 53
Message-ID: <B926C551.624C%christof_laeremans@hotmail.com>
References: <B9267BCD.622D%christof_laeremans@hotmail.com> <20020607154936.3695d4b7.johan@gewestpallieter.be>
NNTP-Posting-Host: adsl-143-227.wanadoo.be
Mime-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
X-Trace: sinclair.be.wanadoo.com 1023473858 1285796 213.177.143.227 (7 Jun 2002 18:17:38 GMT)
X-Complaints-To: abuse@wanadoo.be
NNTP-Posting-Date: Fri, 7 Jun 2002 18:17:38 +0000 (UTC)
User-Agent: Microsoft-Entourage/10.0.0.1309