ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4440682
Jetzt (Chat):
16 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

FAQ - Frequently Asked Questions - Allgemeine Programmierung


Const-Correctness, wofür?

Zitat von Kimmi:
Mal als Hinweis:

const Object *pObj; -> Konstanter Pointer (darf nicht geändert werden
const Object const *pObj; -> Konstanter Pointer auf Konstante

Object const *pObj; Pointer auf Konstante

Besonders schön finde ich Methodendefinitionen wie diese:
Code:
class foo
{
 private:
     int m_iFoo;

 public:
      int GetFoo(void) const {return m_iFoo;};
...

Auf diese Wiese kann man gewährleisten, dass eine Methode eine Instanz nicht verändert.

Wenn man so nun festlegt, welche Bereich unverändert bleiben (z.B. eine konstante Referenz) und welche modifiziert werden, kann der Compiler schon zur Compilezeit Optimierungen festlegen. Ausserdem zwingt man den Benutzer, Methoden so zu gebrauchen, wie es gewollt war. Schweinereien wie:
Code:
// Beispiel ohne irgendwelchen Sinn
class foo
{
 private:
    int *m_pI;

 public: 
    void tuwas(int *pI, int *pJ)  {
      m_pI = pI;
      pJ = m_pI
    }
}

...

foo bla;
int temp[10];

bla.tuwas(&temp, &temp);

werden durchaus schwieriger zu implementieren.

MfG Kimmi