Article View: be.comp.programming
Article #8840Re: Friend functions in C++
From: Slayerke
Date: Wed, 05 Jun 2002 22:21
Date: Wed, 05 Jun 2002 22:21
25 lines
2293 bytes
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-mailReferences:
<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