Singleton
-
Hallo Leute,
wir sollen ein kleines Programm schreiben wo wir "Singleton" anwenden, da ich aber c/c++ anfänger bin, habe ich schwierigkeiten diese Klasse zu verstehen z.BClass Singleton
{
bublic:
static Singleton* Exemplar();
...
protected:
Singleton();
private:
static Singleton* pExemplar;
...
}
hier verstehe ich nicht wie soll ein Objekt der Klasse erzeugt werden und was static bewirken soll.
ich freue auf Ihre Hilfe...
Danke
-
machs doch nicht so bublic.
-
"static" bedeutet, daß du diese Methode ohne aufrufen kannst, ohne ein konkretes Exemplar zu haben - per "Singleton::Exemplar()". Und da alle Konstruktoren geschützt (private bzw. protected) sind, kannst du nur durch Methoden in der Klasse ein neues Objekt erzeugen.
Also ist im Endeffekt die statische Methode "Exemplar()" die einzige Möglichkeit, ein Objekt dieser Klasse anzulegen - und diese Methode legt genau ein Objekt an und gibt dann IMMER dessen Adresse zurück.
(PS: Übrigens sollten auch Copy-Ctor und op=() als private Member definiert werden, sonst zerstören sie das Ziel der Singleton)
-
Vielen Dank, es hat mir geholfen