Statische Methoden
-
Hallo zusammen,
Mich würde interessieren wann muss ich genau die "static" vor einer Methode schreiben. Im Internet habe ich gelesen, einer der Vorteile der statischen Methoden- man braucht keinen Objekt der Klasse zu erzeugen.
Man könnte sowas schreiben wie: Cat::eat();
Wann muss ich die static vor einer Methode setzen?
-
koschka schrieb:
Wann muss ich die static vor einer Methode setzen?
Wenn die Methode eine Operation durchführt, die nicht einem bestimmten Objekt, sondern der ganzen Klasse zugeordnet ist.
-
und wenn ich sowas schreibe wie:
Cat{ static eat(CatA* cata); }
Dann kann ich mit dem Verweis auf cata alle Methoden der CatA aufrufen. Ich muss nicht unbedingt die Methoden der Klasse Cat in der eat() Methode aufrufen.
Static heißt dann nicht unbedingt, dass ich nur die Mthoden der eigenen Klasse aufrufen darf?
-
koschka schrieb:
Ich muss nicht unbedingt die Methoden der Klasse Cat in der eat() Methode aufrufen.
Du musst gar nichts. Es gibt bestimmte Dinge, die du in einer static-Methode nicht tun kannst.
koschka schrieb:
Static heißt dann nicht unbedingt, dass ich nur die Mthoden der eigenen Klasse aufrufen darf?
Nein, das hat nichts miteinander zu tun.
Ob eine Methode static ist oder nicht, sollte sich aus deinem Design ergeben.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ (auch C++0x und C++11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
MFK schrieb:
Ob eine Methode static ist oder nicht, sollte sich aus deinem Design ergeben.
Statische Methoden haben keine Vor- und Nachteile. Es ist einfach etwas anderes.