pucki
17-06-2009, 09:52
Hallo,
durch die Präprozessoranweisung wird verhindert, dass die Header - Datei "file1.h" mehrfach eingebunden wird.
datei 1
#ifndef _MyIncludeTest_file1_h_
#define _MyIncludeTest_file1_h_
#include "file2.h"
class Test1
{
public:
typedef Test1 CLASSNAME;
Test1(){
RLOG(""<< __func__);
}
private:
Test2 _mytest;
};
#endif
datei 2
#ifndef _MyIncludeTest_file2_h_
#define _MyIncludeTest_file2_h_
#include "file3.h"
class Test2
{
public:
typedef Test1 CLASSNAME;
Test2(){
RLOG(""<< __func__);
}
private:
Test3 * _mytest;
};
#endif
datei 2
#ifndef _MyIncludeTest_file2_h_
#define _MyIncludeTest_file2_h_
#include "file1.h"
class Test3
{
public:
typedef Test1 CLASSNAME;
Test3(){
RLOG(""<< __func__);
}
private:
Test1 _mytest;
};
#endif
Leider steigt er aber aus, da er am Ende Test1 nicht mehr kennt ...
gibt es da eine Lösung ohne die Klassenstruktur erheblich zu ändern?
extern class Test1 in "file3.h"
grüße
Reinhard
durch die Präprozessoranweisung wird verhindert, dass die Header - Datei "file1.h" mehrfach eingebunden wird.
datei 1
#ifndef _MyIncludeTest_file1_h_
#define _MyIncludeTest_file1_h_
#include "file2.h"
class Test1
{
public:
typedef Test1 CLASSNAME;
Test1(){
RLOG(""<< __func__);
}
private:
Test2 _mytest;
};
#endif
datei 2
#ifndef _MyIncludeTest_file2_h_
#define _MyIncludeTest_file2_h_
#include "file3.h"
class Test2
{
public:
typedef Test1 CLASSNAME;
Test2(){
RLOG(""<< __func__);
}
private:
Test3 * _mytest;
};
#endif
datei 2
#ifndef _MyIncludeTest_file2_h_
#define _MyIncludeTest_file2_h_
#include "file1.h"
class Test3
{
public:
typedef Test1 CLASSNAME;
Test3(){
RLOG(""<< __func__);
}
private:
Test1 _mytest;
};
#endif
Leider steigt er aber aus, da er am Ende Test1 nicht mehr kennt ...
gibt es da eine Lösung ohne die Klassenstruktur erheblich zu ändern?
extern class Test1 in "file3.h"
grüße
Reinhard