Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » string anfängerproblem

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
30.03.2011, 18:58 Uhr
~CSurvivor
Gast


Hallo an alle, bin recht neu bei c++ und auf folgendes problem gestoßen:
Ich wollte eine gaaaanz simple Klasse basteln nur leider kommt immer wieder der error:
string does not name a type

hab auch schon versucht anstatt using namespace std; immer std::string zu schreiben, was dann dazu führt:
objekt.h:16: error: using-declaration for non-member at class scope
objekt.h:16: error: expected `;' before "name"
objekt.cpp:11: error: expected constructor, destructor, or type conversion before "name"
objekt.cpp:11: error: expected `,' or `;' before "name"

kann mir jemand bitte nen tipp geben woran das liegt?

objekt.h

C++:

#ifndef OBJEKT_H
#define    OBJEKT_H
using namespace std;
class objekt {

public:
    objekt();
    ~objekt();
    string name;

};

#endif    /* OBJEKT_H */



objekt.cpp


C++:
#include "objekt.h"
using namespace std;

string name;

objekt::objekt() {

}
objekt::~objekt() {
}



main.cpp

C++:
#include <cstdlib>

#include "objekt.h"

using namespace std;

int main(int argc, char** argv) {

    objekt test = new objekt();

    return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.03.2011, 19:17 Uhr
0xdeadbeef
Gott
(Operator)


Gleich vorneweg: Benutze niemals using namespace in einem Header! Es gibt nichts nervtötenderes als Header, die dir ungefragt ganze Namensräume ins globale Scope holen und Kollisionen mit anderen Bibliotheken auslösen. Abgesehen von Makro-Definitionen, die sich mit anderen Bibliotheken beißen (windows.h lässt grüßen).

Dein Problem besteht darin, dass du, bevor du std::string benutzt,

C++:
#include <string>


vergessen hast.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.03.2011, 19:19 Uhr
TOSHMAX



Genauso wie du objekt.h in main.cpp einbindest musst du natürlich auch <string> in object.h einbinden. Irgendwo her muss der Compiler ja wissen, was std::string überhaupt ist.


C++:
#ifndef OBJEKT_H
#define    OBJEKT_H

#include <string>



Bearbeitung:
Zu Spät

Dieser Post wurde am 30.03.2011 um 19:20 Uhr von TOSHMAX editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.03.2011, 19:24 Uhr
~CSurvivor
Gast


Danke danke danke!

Ich glaub ich muss mir das mit dem using namespace nochmal zu gemüte führen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


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: