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.