๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #8840

Re: Friend functions in C++

#8840
From: Slayerke
Date: Wed, 05 Jun 2002 22:21
25 lines
2293 bytes
HardCase wrote:

> Ik snap het principe wel van friend functions, maar toch snap ik het
> niet helemaal. In mijn boek (C++ in 21 days, pag. 562 e.v.) cre๏ฟฝren we
> zelf een String-klasse die ook operator+ overloadt. Hoe kan de compiler
> nu weten als ik main die + oproep met een C-String in welke klasse hij
> moet gaan zoeken om die functie te vinden.
> 
> THX
Ik heb die boek niet, dus ik weet niet juist wat je bedoelt, maar friends 
voor operators worden gebruikt als het object zelf niet de eerste term is 
in de operator bvb:
char* + String, want deze soort kun je niet als member maken. 
(de memberfunctie operator+(char*) is voor String + char*).
Je kan die friends natuurlijk ook gebruiken om operator+(String, char*) te 
implementeren, dat moet geen memberfunctie zijn.
De compiler weet welke soort functie te nemen doordat je een class gebruikt 
als 1 van de 2 argumenten van de operator+ (ik denk dat een enum ook mag), 
daardoor weet hij waar hij moet gaan kijken. Moest je bvb operator+ voor 
std::string ook overloaden naar je Stringclass dan zou hij bij beide 
classen gaan kijken naar een toepasbare functie en als die niet gevonden 
wordt een error geven.
-- 
Groeten,
Slayerke
Technical Details
Message-ID: <h9wL8.16333$ud.1643@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!peer.news.opaltelecom.net!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <3CFE688B.5EBDF5F5@tiscali.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: fcea4,6916dc67502b3f8b
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-06-05 15:21:13 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!peer.news.opaltelecom.net!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: Slayerke <slayerkenospammer@slayerke.co.uk>
Subject: Re: Friend functions in C++
Newsgroups: be.comp.programming
Reply-To: slayerkenospammer@slayerke.co.uk
References: <3CFE688B.5EBDF5F5@tiscali.be>
Lines: 25
User-Agent: KNode/0.7.1
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8Bit
Message-ID: <h9wL8.16333$ud.1643@afrodite.telenet-ops.be>
Date: Wed, 05 Jun 2002 22:21:01 GMT
NNTP-Posting-Host: 213.224.101.34
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1023315661 213.224.101.34 (Thu, 06 Jun 2002 00:21:01 MET DST)
NNTP-Posting-Date: Thu, 06 Jun 2002 00:21:01 MET DST
Organization: Telenet Internet