problem mit klasse
-
also ich schreibe zur Zeit eine Klasse zum Speichern von Daten in Dateien:
#include <fstream> #include <iostream> using namespace std; class save_to //Mit dieser Klasse kann man Variabel während der Laufzeit einfach und bequem Daten in .ini Dateien saven { private: FILE* data_list; int SIZE; int list[1000]; char *data_input; int array_save[SIZE]; int array_field_number; int array_value; public: virtual ~ save_to() { delete [] data_input;} //Gebe speicher für data_input wieder frei int save_to_file() { data_input = new char[100]; cin>>data_input; data_list = fopen("list.ini","a+"); fprintf(data_list,"\n%s", data_input); fclose(data_list); return 0; }; void get_array_size() //Die größe des Arrays festlegen { cin >> SIZE; }; void get_array_field_number() //Den Feldwert des Arrays festlegen { cin >> array_field_number; }; void get_array_value() //Der Wert der eingetragen wird { cin >> array_value; }; };und ich habe dabei folgendes problem:
ich bekomme folgende Fehler:#
c:\Dokumente und Einstellungen\Infernion\Eigene Dateien\Visual Studio Projects\classtests\classes.cpp(14) : error C2327: 'save_to::SIZE': Ist kein Typname, nicht statisch und kein Enumerator
c:\Dokumente und Einstellungen\Infernion\Eigene Dateien\Visual Studio Projects\classtests\classes.cpp(14) : error C2065: 'SIZE': nichtdeklarierter Bezeichner
c:\Dokumente und Einstellungen\Infernion\Eigene Dateien\Visual Studio Projects\classtests\classtests.cpp(28) : error C2248: 'save_to::array_save': Kein Zugriff auf private Element, dessen Deklaration in der Klasse "save_to" erfolgte
c:\Dokumente und Einstellungen\Infernion\Eigene Dateien\Visual Studio Projects\classtests\classes.cpp(14): Siehe Deklaration von 'save_to::array_save'
c:\Dokumente und Einstellungen\Infernion\Eigene Dateien\Visual Studio Projects\classtests\classes.cpp(8): Siehe Deklaration von 'save_to'
c:\Dokumente und Einstellungen\Infernion\Eigene Dateien\Visual Studio Projects\classtests\classtests.cpp(28) : error C2065: 'array_field_number': nichtdeklarierter Bezeichnerich hoffe ihr könnt mir sagen wie ich die fehler behebe
MFG travis
-
aaarg c/c++ mix !
-
machs so
class save_to //Mit dieser Klasse kann man Variabel während der Laufzeit einfach und bequem Daten in .ini Dateien saven { private: FILE* data_list; int SIZE; int list[1000]; char *data_input; int array_save[SIZE]; int array_field_number; int array_value; public: virtual ~ save_to() { delete [] data_input;} //Gebe speicher für data_input wieder frei int save_to_file() { data_input = new char[100]; cin>>data_input; data_list = fopen("list.ini","a+"); fprintf(data_list,"\n%s", data_input); fclose(data_list); return 0; } void get_array_size() //Die größe des Arrays festlegen { cin >> SIZE; } void get_array_field_number() //Den Feldwert des Arrays festlegen { cin >> array_field_number; } void get_array_value() //Der Wert der eingetragen wird { cin >> array_value; } };edit: ja und SIZE muss konstant sein
-
SIZE muss ein konstante sein...
------------------------------
Uhhh da gibts aber noch vieles zu bemängeln ...
-
gibts nicht ne möglichkeit nen array anzuschaffen der keine konstante größe hat?
-
Doch schon
Musst es aber dann mit new dynamisch allozieren sowie du es schon bei data_input machst...Müsstest du dann einen Konstruktor bereitstellen der diese Sachen für dich übernimmt und nicht vergessen Speicher wieder freizugeben...
Überdenke dein Design nochmal ein wenig und deine ganzen get_* Methoden sollte mit set_ anfangen, weil du ja dort was setzt...
Da sind noch ein paar Sachen aber das überlass ich dir damit du ja auch was draus lernst
ach und benutze lieber für den I/O von Dateien auch C++ Streams 
-
Freak_Coder schrieb:
Doch schon
Musst es aber dann mit new dynamisch allozieren sowie du es schon bei data_input machst...Nö, mit std::vector muß er kein new hinschreiben.