Ich habe gesehen, dass Konstruktoren, Kopierkonstruktor, Destruktor und Zuweisungsoperator in privaten Bereich in einer typischen Singletone-Klasse gehalten werden. z.B.Warum privater Destruktor in einer Singleton-Klasse?
class CMySingleton
{
public:
static CMySingleton& Instance()
{
static CMySingleton singleton;
return singleton;
}
private:
CMySingleton() {} // Private constructor
~CMySingleton() {}
CMySingleton(const CMySingleton&); // Prevent copy-construction
CMySingleton& operator=(const CMySingleton&); // Prevent assignment
};
Nun meine Frage ist
warum shoule wir halten destructor Zuweisungs-Operator in Privat Umfang? Ist es obligatorisch?
Bricht ein öffentlicher Destruktor eine Eigenschaft einer Singleton-Klasse? Da unsere Objektkonstruktion eingeschränkt ist, gibt es keine Chance auf eine unerwünschte Zerstörung .
Ich kann verstehen, dass private Zuweisung Operator eine Selbst Zuordnung verhindern kann, aber verletzt eine öffentliche Zuweisung Operator ohnehin andere als zusätzliche Laufzeit?
Falsche Frage. Die richtige Frage ist: Warum existiert dieser verdammte und dumme Singleton überhaupt? – SergeyA
@SergeyA: Weil es im GoF-Buch ist :) –