Übergabe eines const-Zeigers an eine static-Memberfunktion
-
Hi, warum kommt bei folgendem Code der fehler
static void setVorstand(const Mitglied *vorstand) { ptrVorstand = vorstand; }error C2440: '=' : '
const class Mitglied *' kann nicht in 'class Mitglied *' konvertiert werden
Durch die Konvertierung gehen Qualifizierer verlorenCheck ich nich...
Wenn ichs so schreib
static void setVorstand(Mitglied *vorstand) { ptrVorstand = vorstand; }funktioniert alles
gruß wolb
-
Bei der oberen Funktion nimmst du einen Zeiger auf ein konstantes Objekt von Mitglied und weist das so wie es aussieht an einen Zeiger auf ein nicht-konstantes Objekt zu. Das geht natürlich nicht, da man das konstante Objekt über den nicht konstanten Zeiger ändern könnte.
EDIT: Also entweder die untere Funktion benutzen oder ptrVorstand als const Mitglied *ptrVorstand deklarieren (Falls das so wie du es programmieren willst geht)
Felix
-
Ich denke es liegt daran dass du bei operator = kein const-Pointer übergibst.
Achja und eine statische Methode kannst du natürlich nicht auf die Attribute zugreifen.
Gruß