Alle Membervariablen und Memberfunktionen in meiner Klasse ClassA sind statisch.Verhindern, dass eine Klasse erstellt wird, deren Memberfunktionen alle statisch sind
Wenn ein Benutzer versucht (versehentlich) ein Objekt dieser Klasse zu erstellen, erhält er eine Warnung: "ClassA, lokale Variable nie referenziert", da alle Funktionen statisch sind, so dass dieses Objekt nie referenziert wird. Also möchte ich verhindern, dass der Benutzer versucht, ein Objekt dieser Klasse zu erstellen.
Wäre es ausreichend, einen privaten Standardkonstruktor (keine Variablen) zu erstellen? Oder muss ich auch privaten Kopierkonstruktor und privaten Zuweisungsoperator erstellen (um die Verwendung der Standardkonstruktoren zu verhindern)? Und wenn ich sie auch erstellen müsste, wäre es vielleicht besser, stattdessen eine rein virtuelle Dummy-Funktion zu erstellen, die den Benutzer daran hindert, ein Objekt zu erstellen?
Vielen Dank
Es ist C++, nicht Java! Warum müssen Sie eine Klasse für statische Funktionen erstellen? mach sie nur global oder unter einem Namespace {} anstelle einer Klasse – hasen
. Wenn du stattdessen einen Namespace verwendest, kannst du private statische Mitglieder nicht haben, um den privaten Status zu halten. –
Sicher kannst du! mache sie statisch und sie werden außerhalb dieser Kompilierungseinheit nicht verfügbar sein. – Ferruccio