🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #9703

Re: vraag geherfomuleerd

#9703
From: domi
Date: Sat, 13 Apr 2002 12:58
58 lines
2778 bytes
Agaricus wrote:

> Mijn vraag opnieuw :
> 
> in mijn datum class staat
>      friend ostream&     operator<<   (ostream&,Datum &)  ;
> in mijn string class staat
>      friend ostream&     operator<<   (ostream&,String &)  ;
> 
> dit is mijn persoon class :
> class Persoon
> {
>  private:
>     String naam;
>     String voornaam;
>     Datum gbdatum;
>  public:
>      Persoon      (String,String,int,int,int)   ;
>      friend ostream&     operator<<   (ostream&,Persoon &)  ;
> };
> 
> Mijn vraag is nu hoe kan ik die friends uit mijn datum en string
> aanspreken vanuit persoon zodat ik naam, voornaam en gbdatum alleen
> kan afdrukken. Als dat mogelijk is.
hm...
het enige waar ik kan opkomen is:
std::ostream& operator<< (ostream& os, Persoon & p)
{
        static int a = 0;
        switch(a) {
        case 0: os << p.naam;
        case 1: os << p.voornaam;
        case 2: os << p.gbdatum;
        };
        a = (++a)%3;
};
wat ervoor zorgt dat elke aanroep van operator<< achtereenvolgens naam, 
voornaam en gbdatum uitprint.
Maar dat is dus _heel_ lelijk.

je kan beter gewoon doen:
class Persoon
{
 private:
    String _naam;
    String _voornaam;
    Datum _gbdatum;
 public:
     Persoon      (String,String,int,int,int)   ;
     friend ostream&     operator<<   (ostream&,Persoon &)  ;
        const std::string& naam() { return _naam; };
        const std::string& voornaam() { return _voornaam; };
        const std::Datum& gbdatum() { return _gbdatum; };
};

en als je dan naam wil afdrukken, dan doe je:
os << eenPersoon.naam();
domi
Technical Details
Message-ID: <XXVt8.15081$Ze.3285@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed00.sul.t-online.de!t-online.de!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <li4dbu47b1n1kqp5rbulsbspte2kpl229m@4ax.com> <2klebu0botb9q8fv8satarbl2djf40b3so@4ax.com>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,7a64caa31a77d9e4
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-04-13 05:58:33 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed00.sul.t-online.de!t-online.de!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: domi <fritmebufstek@pandora.be>
Subject: Re: vraag geherfomuleerd
Newsgroups: be.comp.programming
Reply-To: fritmebufstek@pandora.be
References: <li4dbu47b1n1kqp5rbulsbspte2kpl229m@4ax.com> <2klebu0botb9q8fv8satarbl2djf40b3so@4ax.com>
Lines: 59
User-Agent: KNode/0.6.1
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7Bit
Message-ID: <XXVt8.15081$Ze.3285@afrodite.telenet-ops.be>
Date: Sat, 13 Apr 2002 12:58:31 GMT
NNTP-Posting-Host: 213.118.140.32
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1018702711 213.118.140.32 (Sat, 13 Apr 2002 14:58:31 MET DST)
NNTP-Posting-Date: Sat, 13 Apr 2002 14:58:31 MET DST
Organization: Telenet Internet