[DevCpp] Klassenmember in andere Datei auslagern tut nicht
-
Hallo,
ich habe eine main.cpp mit dem Einsprungspunkt. Jetzt habe ich noch zwei Dateien angelegt und da eine Klasse reingepackt. Eine Headerdatei mit den Prototyen etc, und eine .cpp mit den Klassemembern:main.cpp #include<header.h> using namespace std; int main(int arcs, char *argv[]) { Klasse c; c.Tuwas(); }
class.h class Klasse { public: Klasse(); ~Klasse(); void Tuwas(); };
class.cpp Klasse::Klasse() {} Klasse::Tuwas() {//Tuwas }
Ich weiß zwar jetzt nicht ob das so vom Syntax stimmt, ich habe es gekürzt, aber es geht nicht, es kommt folgenden Fehlermeldung: "main.cpp: `Klasse' undeclared (first use this function)"
Was bedeutet das?
Warum geht es wenn ich den Inhalt der class.cpp unter die Funktion main kopiere und in der class.cpp ausklammere???
Ich hoffe das ist das richte ForumEdit:
Kann es sein, dass ich die class.cpp explizit inkludieren muss?Lutz
-
Lutz schrieb:
Kann es sein, dass ich die class.cpp explizit inkludieren muss?
LutzNicht die CPP, sondern die H. dies musst Du auch in der Klassen-CPP machen.
In die class.cpp gehört#include "class.h"
Diese Zeile muss auch in die main.cpp oder main.h.
In die class.h sollte man die ganze Klassendeklaration noch in #ifdef, #define und #endif setzen:
//class.h #ifndef eindeutiger_bezeichner #define eindeutiger_bezeichner class Klasse { public: Klasse(); ~Klasse(); void Tuwas(); // nur der Schönheit willen, könnte man hier void tuwas(void); schreiben }; #endif
Joe_M.
-
Ja wenn ich in die main.cpp noch die headerdatei inkludiere, geht es einwandfrei. Besten Dank!
Das mit dem Define ist doch, dass Code nicht zwei mal inkludiert wrid, oder?
Lutz
-