Modifizierer für Funktionen, die keine Memberfunktionen sind, nicht zulässig
-
Hallo,
ich sitze gerade an einem Projektm bei dem ich oft int und long in string umwandeln muss. Zu diesem Zweck hab ich mir eine Funktion gebastelt, die dies tun müsste. Die wollte ich nun in eine header verpacken, nun kommt aber ein Fehler:
error C2270: 'long2String': Modifizierer für Funktionen, die keine Memberfunktionen sind, nicht zulässig
Die Zeile in der header:
std::string long2String (long zahl) const;Hm, wenn ich das richtig verstehe, darf ich in der Header nur Memberfunktionen deklarieren. Ich möchte aber ganz gerne nur diese Konvert-Funktion hier speichern und nicht gleich eine Klasse schreiben.
Gibts da eine Möglichkeit?
Vielen Dank,
Karl
-
lass das const am Ende weg.
-
Wow, das ging schnell. Danke für die Antwort. Jetzt gehts.
Wann genau muss/sollte denn 'const' hin?Karl
-
Das const am Ende des Funktionskopfes schreibst du nur, wenn es sich um eine Methode einer Klasse handelt, die die Elemente der Klasse nicht verändert. D.h. die auch für konstante Objekte der Klasse aufrufbar sein soll.
Caipi
-
Jau, jetzt macht das ganze auch Sinn!
Vielen Dank,
Karl
-
Irgendwie scheint meine Funktion doch nicht so ganz das zu machen, wass sie soll!
Ich habe den groben aufbau aus den FAQs hier aus dem Forum. Hat jemand eine Idee, was da falsch läuft?#include <string> #include <sstream> #include "myString.h" std::string long2String (long zahl) { std::ostringstream stream; stream << zahl; std::string erg(stream.str()); return erg; }
Manchmal kommt folgender Fehler:
Unbehandelte Ausnahme bei 0x77c1381c in Test.exe: 0xC0000005: Zugriffsverletzung-Leseposition 0x41313131.
Manchmal liefert die Funktion einfach nichts zurück.
Komisch komisch.Karl
-
Dann hast du bestimmt irgendwo anders einen Fehler. Die Funktion ist jedenfalls korrekt.
-
Ok, dann muss ich mal nachschauen. Danke