Wenn eine Header-Datei in C Codierung ++ mit Methodendeklarationen, was ist der Unterschied zwischen:Wenn const am Anfang und am Ende einer Methodendeklaration in C++
int getFoo() const;
const int getFoo();
const int getFoo() const;
Wenn eine Header-Datei in C Codierung ++ mit Methodendeklarationen, was ist der Unterschied zwischen:Wenn const am Anfang und am Ende einer Methodendeklaration in C++
int getFoo() const;
const int getFoo();
const int getFoo() const;
Ihre erste Funktion auf einem const
this
Zeiger arbeitet (das heißt, ein Objekt const, dass es nicht ändern kann (oder sollte zumindest nicht)).
Ihre zweite Funktion gibt eine konstante Ganzzahl zurück - was etwas unsinnig ist, da Sie sie einfach einer nichtkonstanten Variablen zuweisen und sie trotzdem ändern können. Außerdem, warum kümmert sich die Funktion, wenn Sie einen POD-Typ ändern oder nicht?
Ihre dritte Funktion ist nur eine Kombination der ersten beiden. Eine Funktion, die mit einem konstanten Objekt arbeitet und einen konstanten Wert zurückgibt.
ersten, ist dies zu verhindern Methode, die alle Mitgliedsvariablen des Objekts ändert. zweite, ist für den Rückgabetyp (dh: constant integer) dritte, ist Mischung aus beiden
Das zweite 'const T f()' oder 'const T f() const' ist nutzlos. –