Article View: be.comp.programming
Article #11758Re: C++ vraag: help mij.
From: Bart.Vanhauwaert
Date: Fri, 11 Jan 2002 23:39
Date: Fri, 11 Jan 2002 23:39
58 lines
2578 bytes
2578 bytes
Goethals Frederik <frederik.goethals@belgacom.net> wrote:
> De context: van een bepaalde klasse mag er slechts 1 object bestaan en dit
> object moet vanuit meerdere verschillende klassen beschikbaar zijn. zoals
> bijvoorbeeld het register van windows.
Volgende dingen zijn niet duidelijk uit de vraag.
1. mag er tijdens de ganse uitvoering van het programma slechts 1 object
bestaan van die klasse of mogen er verschillende objecten gecreerd worden
tijdens de uitvoering maar mag er ieder moment slechts 1 enkel object
bestaan?
2. er mag hoogstens 1 object bestaan, maar moet er ook ook op ieder
moment 1 bestaan?
> De vraag is nu: hoe kun je in c++ ervooor zrogen dat een klasse aan de twee
> eisen voldoet. (uitleg via figuur, commentaar, tekst ..)
> En illustreet de techniek met een klasse Randomgenerator.
De truuk is te verhinderen dat er klasses gecreerd worden door de
constructor private te maken. Daarenboven voorzien we een static
(maar public) member functie die juist 1 object zal aanmaken en
altijd de referentie naar dat object geeft.
RG.h:
class RG
{
private:
RG();
RG(const RG& anOther);
public:
double randomDouble(double Min, double Max);
public:
static RG& theRG();
};
RG.cc:
RG& RG::theRG()
{
static RG r;
return r;
}
Iedere class die nu een random getal nodig heeft doet dan bv
#include "RG.h"
std::cout << RG::theRG().randomDouble(-1.0,1.0) << std::endl;
Dit lost jou vraag op voor het geval dat er slechts 1 object tijdens
de volledige uitvoering maar gecreerd worden.
cu bart
--
http://www.irule.be/bvh/
Technical Details
Message-ID:
<a3tn1a.prb.ln@10.0.0.2>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.158.233.21!news.ebone.net!news1.ebone.net!skynet.be!skynet.be!louie!not-for-mailReferences:
<3c3f0fae$0$75147$ba620e4c@news.skynet.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: 107324,afb1ff46730e5f89
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,afb1ff46730e5f89
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-01-11 15:47:33 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.158.233.21!news.ebone.net!news1.ebone.net!skynet.be!skynet.be!louie!not-for-mail
Sender: - <bvh@ns1.irule.be>
From: Bart.Vanhauwaert@nowhere.be
Subject: Re: C++ vraag: help mij.
Newsgroups: be.comp.programming,nl.comp.programmeren
References: <3c3f0fae$0$75147$ba620e4c@news.skynet.be>
User-Agent: tin/1.4.4-20000803 ("Vet for the Insane") (UNIX) (Linux/2.2.17-21mdksecure (i686))
Date: Sat, 12 Jan 2002 00:39:22 +0100
Message-ID: <a3tn1a.prb.ln@10.0.0.2>
Lines: 58
NNTP-Posting-Host: 194.78.202.248
X-Trace: 1010792838 reader1.news.skynet.be 33512 194.78.202.248
X-Complaints-To: abuse@skynet.be