Wo ist der Fehler in der Klasse? E2316
-
folgenden aufbau hat meine kleine klasse?
bekomm folgenden fehler:
[C++ Error] code.cpp(76): E2316 'code_admin::test_code(AnsiString)' is not a member of 'code_admin'
[C++ Error] code.cpp(89): E2316 'code_admin::keygen(int,int)' is not a member of 'code_admin'
[C++ Error] code.cpp(120): E2316 'code_admin::save_code(AnsiString)' is not a member of 'code_admin'
[C++ Error] code.cpp(132): E2316 'code_admin::code_redeem(AnsiString)' is not a member of 'code_admin'header:
#ifndef codeH #define codeH //--------------------------------------------------------------------------- class code_admin // Klassenbezeichnung { public: code_admin(); // Konstruktor ~code_admin(); // Destruktor int random(); // Zufallsmethode für 4-stellige Zahl int quer(int zahl); // Quersumme von int int code (int check); // 4-stelliges int generieren mit Quersumme check int digit(int code, int position); // Ziffer eines 4-stelligen int an Stelle position bool test_code(AnsiString code); // Überprüfen ob Code schon vorhanden AnsiString keygen(int provider, int cash); // Code der Form XXXX XXXX XXXX XXXX XXXX generieren ausgehend von 2 Prüfziffern void save_code(AnsiString code); // Code in Datei speichern void code_redeem(AnsiString code); // Code einlösen und aus Datei löschen }; //--------------------------------------------------------------------------- #endifcpp:
code_admin::code_admin() {} code_admin::~code_admin() {} code_admin::random() { ...; } code_admin::quer(int zahl) { ...; } code_admin::code (int check) { ...; } code_admin::digit(int code, int position) { ...; } code_admin::test_code(AnsiString code) { ...; } code_admin::keygen(int provider, int cash) { ...; } code_admin::save_code(AnsiString code) { ...; } code_admin::code_redeem(AnsiString code) { ...; }versteh das nich!!! die ersten methoden erkennt er doch auch! warum denn nich die letzten??? was überseh ich???
bin für jede hilfe dankbar, tim
-
Hallo
Weil du bei den Implementationen der Methoden nicht den Rückgabewert mit hinschreibst, so wie du es ja auch in den Deklarationen machst.
Hintergrund : Wenn kein Rückgabewert angegeben wird nimmt C++ automatisch int. Da hast du Glück wenn die Methode wirklich int zurückgibt. Wenn aber was anderes (void/AnsiString) dann sind das für den Complier zwei verschiedene Methoden.bis bald
akari
-
wow, das ging ja schnell...

jetzt klappt alles...
vielen, vielen dank...
