char* und const char*

ibafluss

Erfahrenes Mitglied
Hey Leute!
Da ich nun gerade am Umsteigen von C auf C++ bin, bekomme ich jetzt öfters die Fehlermeldung "cannot convert char* to const char*", bei einem Funktionsaufruf. In C ist das ja auch so, dass die Funktionen const char* als Parameter haben, nur bedeutet das ja nur, dass die Daten in der Funktion nicht geändert werden können oder?
In C habe ich jedenfalls hier nie eine Fehlermeldung bekommen. Muss ich jetzt bei jedem Funktionsaufruf einen const_cast machen? Wird ja wohl eine andere Möglichkeit geben oder?

Lg
 
Hi.
Hey Leute!
Da ich nun gerade am Umsteigen von C auf C++ bin, bekomme ich jetzt öfters die Fehlermeldung "cannot convert char* to const char*", bei einem Funktionsaufruf.
Das kann ich nicht nachvollziehen.

Es sollte höchstens andersherum sein: "cannot convert const char* to char*".
In C ist das ja auch so, dass die Funktionen const char* als Parameter haben, nur bedeutet das ja nur, dass die Daten in der Funktion nicht geändert werden können oder?
Ja.
In C habe ich jedenfalls hier nie eine Fehlermeldung bekommen. Muss ich jetzt bei jedem Funktionsaufruf einen const_cast machen? Wird ja wohl eine andere Möglichkeit geben oder?
Einfach sauber programmieren. Stichwort: const correctness. Wenn eine Funktion einen "char*" als Parameter benötigt, dann darf man einfach keinen "const char*" übergeben.

Mit einem const_cast würdest du ja den const Qualifizierer entfernen. Das würde also auch nicht zu deiner Problembeschreibung passen.

Gruß
 
Danke für die Antwort. Problem hat sich schon erledigt. Es lag nicht an dem const, ich hatte nur vergessen als Zeiger zu übergeben.

Lg
 
Zurück