Was sind einige mit C ++ zusammenhängende Redewendungen, Missverständnisse und Fallstricke, die Sie aus Erfahrung gelernt haben?

Was sind einige mit C ++ zusammenhängende Redewendungen, Missverständnisse und Fallstricke, die Sie aus Erfahrung gelernt haben?

Ein Beispiel

class A
{
  public: 
  char s[1024];
  char *p;

  A::A()
  {
    p = s;
  }

  void changeS() const
  {
    p[0] = 'a';
  }

};

Even know changeS ist eine konstante Elementfunktion, die den Wert des Objekts ändert. Eine const-Member-Funktion bedeutet also nur, dass alle Variablen als const behandelt werden und nicht, dass tatsächlich alle Member const bleiben. (Warum? Das Schlüsselwort const in der Elementfunktion behandelt char * p; als char * const p; und nicht als const char * p;

Was bedeutet also, dass p nicht auf etwas anderes zeigen kann. Und nicht, dass Sie die Daten von p nicht ändern können.

Antworten auf die Frage(32)

Ihre Antwort auf die Frage