Veröffentlicht 3. September 200321 j Hallo. Ich bin kurz vorm ausflippen. Ich habe ein Problem und zwar muckt der Compiler herum und ich verstehe nicht warum. Meine Klasse ist folgend definiert: class waerung { public: waerung(); virtual ~waerung(); CString get_werte(int , int ); void set_werte(CString,int ,int ); protected: CString ar_werte[4][20]; }; Meine Funktionen dementsprechend sind: ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ////////////////////////////////////////////////////////////////////// waerung::waerung() { } waerung::~waerung() { } //--------------------------------------------------- CString waerung::get_werte(int x, int y) { CString wert; wert = this->ar_werte[x][y]; return wert; } //--------------------------------------------------- void waerung::set_werte(CString data,int x,int y) { this->ar_werte[x][y] = data; } Wenn ich nun im Programm die Funktion set_werte oder get_werte aufzurufen. waerung::set_werte(data,x,y); Muckt der Compiler herum: error C2352: 'waerung::set_werte' : Unzulaessiger Aufruf einer nichtstatischen Member-Funktion e:\eigene dateien\programs\raff\waerung.h(18) : Siehe Deklaration von 'set_werte' waerung.cpp Ich sehe den Fehler einfach nicht oder bin ich einfach zu dumm ? :confused:
3. September 200321 j Original geschrieben von Cyberfree Wenn ich nun im Programm die Funktion set_werte oder get_werte aufzurufen. waerung::set_werte(data,x,y); [/CODE] Muckt der Compiler herum: [/b]Zu Recht. Diese Art des Aufrufs (Klassenname::Funktion) funktioniert nur bei statischen Memberfunktionen, d.h. Memberfunktionen, die ohne eine Instanz der Klasse aufgerufen werden können. Da set_werte aber nicht statisch ist, brauchst du zuerst eine Instanz deiner Klasse, z.B.:[CODE]waerung w; w.set_werte(data,x,y);
3. September 200321 j Original geschrieben von Klotzkopp Da set_werte aber nicht statisch ist, brauchst du zuerst eine Instanz deiner Klasse, z.B.:waerung w; w.set_werte(data,x,y); *kopfauftischhau* *kopfgegenwandschmetter* Viele Dank. Das hatte ich komplett vergessen. Das ist mir jetzt peinlich :(
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.