>Ich nehme an du benutzt C++?
Ja. Aber ich habe wenig Erfahrung damit. Im Grunde möchte ich "nur ein
paar" Zeilen Code anpassen. Eigentlich will ich bei diesem Projekt
innerhalb von C++ bleiben.
>Dort gibt es keine Klasse die String heißt>sondern höchstens std::string. Gibts im Header <string>.
Danke, aber das hilft mir leider nicht weiter. Hab jetzt per Trial&Error
rumgepopelt, aber bei meinen rudimentären Kentnissen wird das grad'
nix...
Wenn du in einem fremden Projekt rumspielst wäre es praktisch zu wissen
welches Projekt das ist, falls das nicht geheim ist. Dann könnte String
eine selbst definierte Klasse in diesem Projekt sein oder es gibt auch
diverse Libraries die ihre eigene String Klassen mitbringen.
Lötkolben-Benutzer schrieb:>>Dort gibt es keine Klasse die String heißt>>sondern höchstens std::string. Gibts im Header <string>.> Danke, aber das hilft mir leider nicht weiter. Hab jetzt per Trial&Error> rumgepopelt, aber bei meinen rudimentären Kentnissen wird das grad'> nix...
Was ist dein Problem? was sagt der Compiler?
Noch mal zum verständnis:
In C++ gibt es keine Standardklasse die "String" heisst. Es gibt aber
die Klasse "string", im Namensraum "std".
>Noch mal zum verständnis:>In C++ gibt es keine Standardklasse die "String" heisst. Es gibt aber>die Klasse "string", im Namensraum "std".
Schon klar. Aber wie passe ich das an, damit das Problem:
#include <string>
void print(String st, int x, int y, int deg=0);
error: 'String' has not been declared
verschwindet? Mit 'namespace' habe ich ein bisschen rumexperimentiert,
bin aber nicht weit gekommen.'
Lötkolben-Benutzer schrieb:> Aber wie passe ich das an, damit das Problem:> #include <string>> void print(String st, int x, int y, int deg=0);>> error: 'String' has not been declared>> verschwindet?
1
voidprint(std::stringst,intx,inty,intdeg=0);
Das "sting" musst du klein schreiben und mit "std::" sagen, dass es aus
dem std Namespace kommt.
Notfalls kannst du auch versuchen die zweite Funktion mit String einfach
auszukommentieren. Solange niemand versucht die print Funktion mit einem
String Objekt aufrufen will reicht auch die char* Version.
> Das "sting" musst du klein schreiben und mit "std::" sagen, dass es aus> dem std Namespace kommt.
Nicht die beste Idee, wenn man nicht einmal weiß, was "String" (genau)
ist. Dann wird der Compiler evtl. als nächstes darüber meckern, dass
Operation soundso nicht bekannt ist.
@TO: Entweder nicht verwenden (auskommentieren), falls sinnvoll oder
nachsehen, was String ist und was davon benötigt wird.
Grrr!
Eclipse findet den Pfad zu #include<string> nicht findet.
Gleicher Fall wie hier:
http://stackoverflow.com/questions/7905025/string-could-not-resolved-error-in-eclipse-for-c
So ist das halt mit der freien Software, die stets ohne
Qualitätssicherung rausgehauen wird. Yoo, Hauptsache über den grünen
Klee gelobt.
Jetzt hab ich aber noch ein zweites, viel merkwürdigeres Problem:
Angefangen habe ich dieses C++ Projekt mit einem Hallo-Welt Led-Blinker.
Schon vor dem kompilieren kam der Fehler:
1
blinkLed.turnOn();
2
timer.sleep(BLINK_ON_TICKS);
3
4
blinkLed.turnOff();
5
timer.sleep(BLINK_OFF_TICKS);
Invalid arguments '
Candidates are:
void sleep()
' main.cpp /test_c++/src line 82 Semantic Error
Wegbekommen habe ich ihn indem ich eine .h Datei in .hpp geändert habe.
Zufall? Jetzt sehe ich den Fehler wieder.
Das hier steht in Timer.hpp:
Lötkolben-Benutzer schrieb:> Wegbekommen habe ich ihn indem ich eine .h Datei in .hpp geändert habe.> Zufall? Jetzt sehe ich den Fehler wieder.
Ziemlich blöde Idee. Vermutlich findet ein #include die Datei jetzt
nicht mehr und du kriegst möglicherweise eine andere Fehlermeldung. Am
eigentlichen Problem hat das aber sicher nichts geändert.
Lötkolben-Benutzer schrieb:> Invalid arguments '> Candidates are:> void sleep()> ' main.cpp /test_c++/src line 82 Semantic Error
Invalid arguments hört sich fast so an als ob er die Defines
BLINK_ON_TICKS/BLINK_OFF_TICKS nicht findet oder die irgendwie
schwachsinnig definiert sind. Prüfe doch mal wo die definiert werden
oder setze testweise direkt eine Zahl ein.
>> Wegbekommen habe ich ihn indem ich eine .h Datei in .hpp geändert habe.>> Zufall? Jetzt sehe ich den Fehler wieder.>Ziemlich blöde Idee.
Kann man so nicht sagen. Der Fehler ging zunächst mal weg, weil - ich
vermute stark - dies etwas mit dem Indexer von Eclipse zu tun hat.
Die notwendigen Änderungen zum kompilieren habe ich natürlich
vorgenommen, man ist ja kein Irrenhäusler. Der Fehler kam durch die
Projekteinstellungen. Nun habe ich die Einstellungen im Indexer geändert
und es scheint zu gehen.
>Ziemlich blöde Idee.
Für eine blöde Idee halte ich eher, daß die die Klasse 'Timer' in einem
.h file und nicht in einem .hpp file zu finden ist...