PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kleines problem mit include ... rekursion führt zu fehler



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

pucki
17-06-2009, 10:06
hat sich erledigt,

ich muss ja in "file2.h" die Klasse Test3 nur bekannt machen



class Test3;


grüße

RHBaum
18-06-2009, 12:01
Prinzipiell solltest Dir eh angewoehnen, nur das zu includieren was eh brauchst ...
Also zu deutsch, immer forward wenn geht, include nur wenn musst.

Ciao ...