Einzelnen Beitrag anzeigen

Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#8

Re: (C++): Konstante Methoden

  Alt 16. Aug 2004, 13:19
Servus,
wie ich das hier interpretiere, schreibt ihr von unterschiedlichen Dingen.
Das liegt daran, dass der Begriff "konstante Methoden" Interpretationsmöglichkeiten
übrig lässt. Einer schreibt von konstanten Methoden, der andere von statischen Methoden.
Dies sind in C++ zwei völlig unterschiedliche Dinge.Wenn ich das richitg in Erinnerung habe,
war das folgendermaßen:

Statische Methoden mit dem Präfix <static> stellen Klassenmethoden dar. Mit diesen
Klassenmethoden können nur Klassenvariablen geändert werden. Eignet sich zum Beispiel
zum Zählen der erstellten Objekte einer Klasse. Ich versuch's mal zu erklären (ungetestet):
Code:
class MyClass {
      private:
        static int count;       // Präfix STATIC !
      public:
        static int newObject(); // Präfix STATIC !
};

static int MyClass::newObject(); {
       count++;      // Hochzählen des Klassenattributes
}
Konstante Methoden (Postfix const) sind Methoden, durch die die Attribute (Eigenschaften) einer
Klasse nicht geändert werden dürfen, d.h. der Compiler würde es verbieten. Das hat den Sinn,
dass der Entwickler bei einem Getter (eine Nur-Lese-Methode) nicht versehdendlich ein
Attribut der Klasse ändert. Ich versuch' auch hier mal das zu erläutern (ungetestet):
Code:
class MyClass {
  private:
    int wichtigerWert;
  public:
    int lies_Wichtigen_Wert(); const; // Postfix CONST !
};

int MyClass::lies_Wichtigen_Wert(); const; {
  wichtigerWert = 5; // unmöglich, denn Methode darf keine Attribute ändern !!!
  return wichtigerWert;
};
Check this out.
DANNYBOY
  Mit Zitat antworten Zitat