000
13.03.2005, 18:16 Uhr
~PennyLane
Gast
|
Hallo,
ich habe jetzt schon ewig nach dem Fehler gesucht und komm nicht drauf. Wahrscheinlich ist es ganz simpel und ich hab einfach nur schon zu lange vor der Kiste gesessen :-)
Also, hier mein Problem: Ich verwende VisualStudio 7 und schreibe an einem Programm, das den folgenden Header (wortvektor.h) enthält:
C++: |
#ifndef my_header #define my_header
#include <algorithm> #include <iostream> #include <vector> #include <iterator> #include <fstream> #include <string> #include <functional>
class wortvektor { public: wortvektor(string); // constructor wortvektor(const wortvektor&); // copy constructor vector<string> get_woerter(); void sort1(); void loesche_dupl(); void sort2(); void zaehle(int); void loesche(const vector<string>&); private: vector<string> woerter; };
struct Anzeige { void operator()(const string&); };
struct Wortlaenge { bool operator()(const string&, const string&); };
struct laenger_als : binary_function<string, int, bool> { bool operator()(const string&, const int&); };
#endif // my_header
|
Die Klassen sind in einer Datei wortvektor.cpp definiert. Der Compiler bringt mir die Fehlermeldung "wortvektor.h(13): error C2460: 'wortvektor::string': Verwendet gerade definiertes 'wortvektor'"
Es scheint irgendwie damit zusammenzuhängen, dass dem Konstruktor ein String übergeben wird. Wenn ich den Konstruktor so verändere: wortvektor(string), dann kommt der Fehler nicht mehr. Offensichtlich weiß der Compiler zu diesem Zeitpunkt nicht, was ein String ist, obwohl das #include <string> darübersteht.
Hat jemand eine Idee?
Danke schon mal für eure Mühe, PennyLane
Bearbeitung von Pablo: |
benutze die CPP selber!
|
Dieser Post wurde am 13.03.2005 um 18:40 Uhr von Pablo editiert. |