Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » komischer Compilerfehler (C2460)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.03.2005, 18:32 Uhr
~PennyLane
Gast


OK, ich hab den Fehler gefunden. Den Namespace std öffne ich erst nach dem #include "wortvektor.h" in den Implementationsdateien, da kann der Compiler string ja noch gar nicht kennen. Habe std::string geschrieben und jetzt geht's :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: