C++ frage...

waxa

Pfad finder
Registriert
21. Februar 2004
Reaktionspunkte
0
Ort
Schönbuch & Erzgebirgsnordrandstufe
Hi, mal eine Frage an die Experten hier.

Gibt es in c++ statische Klassen ?
Also die Möglichkeit eine Klasse in der nur Methoden vorhanden sind komplett statisch zu machen, ohne das static vor jede Methode zu schreiben.
Ich will quasi das von der Klasse keine Objekte entstehen können, ich aber trotzdem die Methoden über den :: Operator aufrufen kann.
(erstes würde bei einer abstrakten Klasse gehen, aber das aufrufen nicht)

Hoffe ich hab mich verständlich ausgedrückt....


waxa
 
Nein.

Aber Du kannst einfach die Funktionen, die Du haben willst, wie in C ausserhalb einer Klassendefinition definieren.

Ist aber schlechter Programmierstil.
 
^^ Danke, für die Antwort.
Ja, so hatte ich es vorher gemacht, aber wie du schon sagtest ist das kein besonders guter Stil. Auch werd ich dort im nachhinein mit meiner UML Dokumentation Probleme bekommen...
Soll halt rein Objektorientiert werden.

Hab es jetzt so gemacht das ich alle Methoden der Klasse static gemacht habe und denn Konstruktor, bzw. Destruktur privat. So habe ich beide Vorteile.

Wenn jemand noch eine andere, vielleicht bessere, Möglichkeit weiss nur her damit.

waxa
 
So wie sich das anhört, wäre evtl. ein singleton sinnvoll d.h. eine Klasse von der nur eine Instanz erstellt werden kann. Die instanz wird in der Klasse selbst gehalten.
In C++ ist allerdings das erstellen von Singletons etwas problematisch.
 
Ein Singleton sollte man dafür nicht missbrauchen, eine abstrakte Klasse erst recht nicht.


Ist es wirklich nötig, diese Fuktionen static zu definieren? Hört sich stark nach nach einer Funktionsbibliothek an. Wenn Du Funktionen gruppieren möchtest, ist es am besten, sie als statische Funktionen in einer Klasse zu kapseln.

Viele globale Funktionen in einer objektorientierten Programmiersprache deuten meist auf schlechtes design hin...
 
Ein Singleton sollte man dafür nicht missbrauchen, eine abstrakte Klasse erst recht nicht.


Ist es wirklich nötig, diese Fuktionen static zu definieren? Hört sich stark nach nach einer Funktionsbibliothek an. Wenn Du Funktionen gruppieren möchtest, ist es am besten, sie als statische Funktionen in einer Klasse zu kapseln.

Viele globale Funktionen in einer objektorientierten Programmiersprache deuten meist auf schlechtes design hin...

Jenachdem für was er das braucht, ist hier definitiv ein Singleton nicht missbraucht! Bisher haben wir ja nicht erfahren wozu er die funktionen braucht!
 
Zurück
Oben Unten