Warning C4180 in VS2K5
-
Was hat es mit der Fehlermeldung
warning C4180: Auf Funktionstyp angewendeter Qualifizierer ist ohne Bedeutung; wird ignoriert
bei
header: const char operator[](int zahl) const; src: const char Zeichenkette::operator[](int zahl) const { ... }
auf sich? Was ist hier "redundant"?
-
Kannst Du mal ein besseres Beispiel posten? Bei mir geht das ohne Probleme:
CPP.h:#pragma once class Zeichenkette { const char operator[](int zahl) const; };
CPP.cpp:
#include "CPP.h" #include <tchar.h> const char Zeichenkette::operator[](int zahl) const { return (const char) zahl; } int _tmain() { return 0; }
-
Primitive Typen const zurückzugeben ist "redundant". Solche Rückgaben sind keine l-values und daher praktisch sowieso nicht veränderbar. Und wenn wir schon beim op[] sind, dann wolltest du wohl eher eine Referenz zurückgeben. Dann macht nämlich auch das const wieder Sinn.