string als Parameter
-
Habe gerade zum ersten mal mit der STL herumexperimentiert und versucht, einen string als Parameter einer Funktion zu übergeben. Eigentlich ist das ja auch kein Problem, sobald ich jedoch den Code auf verschiedene Dateien verteile, bekomme ich jedesmal den Fehler, dass string ein nicht Deklarierter Bezeichner sei. Leider habe ich keine Ahnung was ich falsch mache. Ich benutze vc++ 6.
//main.cpp #include <iostream> #include <string> #include "strings.h" using namespace std; int main() { string test = "Test"; zeige_string(test); return 0; } //strings.h void zeige_string(string s); //strings.cpp #include <iostream> #include <string> #include "string.h" using namespace std; void zeige_string(string s) { cout << s << endl; }//Edit: Codetags ....

-
Bissl selber denken bitte. #include <string> in die .h und dann std::string beim Übergabeparameter...
-
//main.cpp // #include <iostream> <- Hier unnötig du verwendest nichts daraus #include <string> #include "strings.h" using namespace std; int main() { string test = "Test"; zeige_string(test); return 0; } //strings.h #ifdef GUARD_STRINGS_H // Verhindert doppeltes einbinden. // Ist in dem fall zwar nicht wirklich wichtig, aber solltest du dir trotzdem angewöhnen // Für mehr informationen einfach mal nach Include Guard suchen ;) #define GUARD_STRINGS_H // Gehört noch zum include guard #include <string> // Wir wollen std::string benutzen // Hier sollte man *nie* using namespace std; verwenden, das kann zu sehr großen problemen führen. Deshalb std:: präfix benutzen => void zeige_string(std::string s); #endif// GUARD_STRINGS_H das schließt die verwendung des include guards ab //strings.cpp #include <iostream> // Wir binden strings.h ein welches <string> einbindet => brauchen also nur noch iostream #include "strings.h" // Hier hast du das 2. s vergessen. using namespace std; void zeige_string(string s) { cout << s << endl; }
-
Bin leider ein Blutiger Anfänger in C++ und in meinem Buch hatte es nur beispiele mit Integer Parameter und darum brauchte ich nie eine Header-Datei zu inkludieren. Jetzt weiss ich bescheid. Danke.

-
evilissimo schrieb:
#ifdef GUARD_STRINGS_H // Verhindert doppeltes einbinden.Dieser Include Guard ist aber besonders streng
