006
11.09.2004, 19:20 Uhr
virtual
Sexiest Bit alive (Operator)
|
Naja, ich habe den Eindruck, du bist nur halb zufrieden und weißt nicht recht, mit der Fehlermeldung umzugehen:
Du musst halt genau lesen und das Unwesentliche weglassen, dann sind die Fehlermeldungen auch verdaulich:
C++: |
Dat.cpp(7) : error C2664: '__thiscall std::basic_ifstream<char,struct std::char_traits<char> >::std::basic_ifstream<char,struct std::char_traits<char> >(const char *,int)' : Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'const char *' nicht moeglich Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
|
Sicher ist schon mal, daß der Fehler in Zeile 7 auftaucht. Dann kannst Du mal das, was in den Spitzen Klammern steht fortlassen, also die Templateargumente:
C++: |
Dat.cpp(7) : error C2664: '__thiscall std::basic_ifstream<>::std::basic_ifstream<>(const char *,int)' : Konvertierung des Parameters 1 von 'class std::basic_string<>' in 'const char *' nicht moeglich Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
|
Aus std::basic_ifstream<>::std::basic_ifstream<>(const char *,int) Kann man eben sehen, daß es ein Constructor aufruf ist, der Probleme bereitet, weil nur Konstruktoren so heißen, wie die Klasse selbst. Dann kann man sehen, daß er den ersten Parameter nicht umwandeln kann, also datei. Er sagt Dir auch, as er gerne hätte: ein []const char*[/i]. Und er sagt auch, daß das std::basic_string keine Umwandlung in ein const char* erlaubt. Also ist Deine Aufgabe einen Weg zu finden, eine händische Umwandlung zu machen. Wie das geht, kannst Du eigentlich nur dann wissen, wenn du die Klasse std::basic_string kennst und weißt, daß sie die methode c_str() für genau diesen Zweck hat. Da string recht tentral und wichtig ist, wirst Du sie schnell kennenlernen -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |