Statische Methoden/Klassen?
lima-city → Forum → Programmiersprachen → C/C++ und D
beispiel
bestehen
code
entfernen
erstellen
erzeugen
existieren
funktion
hauen
instanz
kurze frage
methode
objekt
operator
parameter
speichern
statische methoden
unterschied
vergessen
zugreifen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
statische Methoden sind Methoden, für die du eine Klasse nicht instanzieren musst. Also, wenn du ne Klasse hast, mit Methoden, musst du normalerweise erst ein Objekt davon erstellen (kenn die C++ Syntax grade nicht) also (Pseudocode):
Instanz = new Klassenname()
Instanz.NormaleMethode()
Bei statischen Methoden rufst du die Methode auf durch
Klassenname.StatischeMethode()
Ohne erst ein Objekt erstellen zu müssen.
Unterschiede sind, dass du noch nicht auf Instanzvariablen zugreifen musst, aber halt auch keine Instanz erzeugen musst.
Die main-Methode eines Prgrammes z.B. muss statisch sein, denn sie wird von aussen aufgerufen und es gibt noch kein Objekt dafür. Statische Methoden gehören also zur Klasse, nicht zur Instanz...
Kannst du damit was anfangen?
Sonst such mal ein Tutorial über die Basics von Objektorientierter Programmierung, das ist bei jeder OOP-Sprache ziemlich gleich. -
Man muss auch so keine Instanz erzeugen.
class myclass { void Foo(); [...] }; int main(void) { //Ich brauch hier atm keine Parameter, von daher. myclass obj; obj.Foo(); }
Allerdings kann man dieses Beispiel nicht so gut umherreichen usw.
Nimmt man jetzt den Operator \"->\" wirfts einen fehler. Dafür muss man das Objekt auf den Heap hauen. Mit new. (Nicht vergessen später wieder mit delete zu entfernen...)
static Variablen
static Variablen haben einen anderen Gültigkeitsbereich als \'normale\' Variablen. Eine static Variable in einer Funktion hört nicht zu existieren auf, wenn die Funktion beendet wird, sondern bleibt im Speicher bestehen. Wichtig ist, dass der gleiche Sichtbarkeitsbereich wie bei \'normalen\' Variablen verwendet wird.
Quelle:http://tutorial.schornboeck.net/static.htm
Static hat wie oben gesagt, andere gültigkeitsbereiche. Sie bleibt im Speicher bestehen. zum Beispiel, wenn man zählen möchte, wie oft eine Funktion ebreits aufgerufen wurde, deklariert man ein static int das immer Inkrementiert wird.
Da die Variable im Speicher erhalten bleibt zählt sie immer zum vorherigen Wert dazu usw. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage