string in klasse verwenden
-
Danke für die schnelle antwort, doch irgend wie nix

@Schamote: habe ich

@manni66: das mit der groß klein schreibung war irgnde wie nur ein kopier fehler hier in, im programm ist es beides gleich geschrieben
Doch wie mach ich das in die header das string einfügen einfach mit #include <string> währe logisch oder

auch bei namespace std kommt auch die fehlermeldung.Ich habe noch was herausgefunden:
wenn ich mit der maus in database.cpp über DatabaseIDnum gehen steht da:
Error: Die Deklaration ist nicht "" <error-type> Database::DatabaseIDnum()"(deklariert in Zeile 14 von "...\\Database.h") kompatible
-
CocoEi schrieb:
@manni66: das mit der groß klein schreibung war irgnde wie nur ein kopier fehler hier in, im programm ist es beides gleich geschrieben
Gib uns bei Fehlern dieser Art den exakten Code. Copy & Paste. Nichts abgetipptes und nichts was so ähnlich aussieht wie der fehlerverursachende Code. Du baust dadurch bloß andere Fehler ein (die dann gefunden werden) oder machst den Fehler zufällig weg. Siehe dritter Link in meiner Signatur.
-
Jepp. Das ist kein vollständiges Minimalbeispiel. Was ist Database? Woher kommt string bzw std::string?
Und was ist, wenn die Datei noch nur zwei Zeilen oder weniger enthält? Dann gibt es keine dritte Zeile und das Programm kackt ab. Das ist eine Situation, in der ich eine Ausnahme werfen würde.
-
Der code von oben ist kopiert, mit copy&past
hier noch mal:
Database.cpp -> halt nur eine methode daraus:#include "Database.h" #include <iostream> #include <fstream> #include <string> #include <vector> #include <time.h> using namespace std; fstream Datafile; string timefile = "TimeFile.txt"; string Database::DatabaseIDnum(void) { std::vector<std::string> lines; std::string line; Datafile.open(timefile, ios::app); while(std::getline(Datafile, line)) { lines.push_back(line); } return lines[2]; }Database.h
#pragma once class Database { public: void DatabaseBeleg(void); void DatabaseQuitung(void); int DatabaseID(void); private: int Month(void); int Year(void); string DatabaseIDnum(void); };@krümelkacker Database ist eine Klasse
Und die Text datei hat auf jeden fall eine 2 zeile!
ich habe auch noch mal was rumprobier ich weiß zumindes wo der fehler sein müsst!
Der kann vermutlich kein string returnen, weil das ein vector string ist, so würd ich es mir vorstellen.hier noch mal eine test klasse
string Test::Read() { return "HAllo"; }#pragma once #include <string> using namespace std; class Test { public: Test(void); ~Test(void); string Read(); };so was klapt bei mir
wäre auch schlecht wenn nicht 
gruß
coco
-
In Database muss es "std::string DatabaseIDnum(void);" heißen. Die ganzen "void" kannst du übrigens auch weglassen.
-
haha,
sry das ich euch gehirn zellen zum denken angeregt habe
doch ich weiß wo der fehler lag:Wie
manni66 schrieb:
Ist im Header string includiert?
gesagt hat, doch using namespace std; musst auch noch dazu.
Danke noch mals!
PS:das mit dem void weiß ich

gruß
coco http://www.gipfeltreffen.at/images/smilies/smi_mit%20kopf%20gegen%20die%20wand.gif
-
In Headern sollte man auf gar keinen fall ein using namespace einsetzen! Lieber std:: usw. schreiben!
-
ok werde ich befolgen

doch wie so nicht ?
Damit man auch andere namespace benutzen kann?
-
guck mal hier
-
ok danke
^^