kostenloser Webspace werbefrei: lima-city


Statische Methoden/Klassen?

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    hey Ho

    ne kurze frage,
    Was sind statische methoden? und unterschiede so?^^
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m******s

    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.
  4. 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.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!