class aus einer externen Datei einbinden?
-
Hi,
ich habe eine Klasse in einer externen Datei geschrieben und möchte eine private Methode dieser Klasse aus einer Form aufrufen. Es geht aber nicht, obwohl ich die Header Datei in Form eingebunden habe und alle Dateien im selben Verzeichnis gespeichrt sind.
Kann bitte jemand sagen, wo ich Fehler mache:
a.cpp Datei enthält:
class A
{
public:
void funk(void);
};void A::funk(void)
{
int a=0;
a++
}a.h Datei enthält:
class A
{
public:
void funk(void);
};Form Datei enthält unter anderem:
#include "a.h"
A temp;
temp.funk();Danke im voraus
Pythonich
-
wie lautet denn die Fehlermeldung?
normalerweise erfolgt die Deklaration in der Header-Datei, die Implementation in der CPP-Datei. Du hast die Deklaration in beiden.
Beispielsweise:
// a.cpp void A::funk(void) { int a=0; a++; // Semikolon fehlte }; // Semikolon fehlte // a.h Datei enthält: #ifndef beliebiger_eindeutiger_bezeichner #define beliebiger_eindeutiger_bezeichner class A { public: void funk(void); }; #endifDavon abgesehen geschieht in der Funktion absolut nichts, außer das eine temporäre Variable erzeugt wird, hochgezählt wird und beim Verlassen der Funktion wieder gelöscht wird.
Außerdem ist die Funktion public: und nicht private:. Auf private: Funktionen kann von außerhalb nicht ohne weiteres zugegriffen werden. Diese muß dann entweder als Friend-Funktion eingebunden werden, oder eben als public: deklariert werden.
Joe_M.
-
Natürlich gehört in die a.cpp noch
#include "a.h"
-
Hat's geklappt. Danke