Wann machen in C++ statische Klassen einen Sinn?



  • Ich schreibe gerade eine Klasse, die ein paar Werte transformiert. Nun brauche ich davon keine Instanz und auch keine Membervariabeln, also habe ich zuerst an eine statische Klasse gedacht. Diese gibt es ja so nicht in C++, sondern nur Klassen mit statischen Members/Methoden. Die Members benötige ich aber nicht.

    Also sollte es doch ausreichen, wenn ich in einem Namensraum im Header einfach freien Funktionen definiere und diese dann in der Sourcedatei deklariere, oder?

    Machen also "statische" C++-Klassen nur einen Sinn, wenn man auch Membervariabeln braucht?



  • CppNeuland schrieb:

    Also sollte es doch ausreichen, wenn ich in einem Namensraum im Header einfach freien Funktionen definiere und diese dann in der Sourcedatei deklariere, oder?

    Ja, wenn du keine Klasse brauchst, schreib keine Klasse.

    CppNeuland schrieb:

    Machen also "statische" C++-Klassen nur einen Sinn, wenn man auch Membervariabeln braucht?

    Man braucht nie statische Klassen, höchstens Singletons, und damit sollte man auch nicht übertreiben. Die Reihenfolge beim Erstellen und Zerstören von statischen Objekten ist nicht definiert, damit gibts nur Probleme.



  • Ah ok, danke für die Info.


Log in to reply