2016-04-05 12 views
2

Angenommen, ich habe eine Header-Datei header1.h mit typedefs A, B und C. B verwendet A und C verwendet B, so dass die Reihenfolge der typedefs erzwungen wird. Jetzt entscheide ich, dass typedef B wirklich in einer eigenen Headerdatei (header2.h) sein sollte. Aber ich kann header2 nicht von header1 einbeziehen (weil dann typedef B vor C wäre), und auch header1 von header2 nicht. Ich habe versucht, die Typen zu deklarieren, aber ich denke, das funktioniert nur, wenn man auf sie zeigt. Andernfalls gibt der Compiler immer noch einen 'unvollständigen Typ' Fehler.Organisation von C++ - Header-Dateien

Antwort

2

Ich denke, das einzige, was Sie hier tun können, ist jeden Typdef in eine eigene Kopfzeile zu verschieben, dann können Sie sie in beliebiger Reihenfolge einschließen. Wie folgt aus:

a.h

#ifndef A_H 
#define A_H 

typedef int A; 

#endif // A_H 

b.h

#ifndef B_H 
#define B_H 

#include "a.h" 

typedef A* B; 

#endif // B_H 

c.h

#ifndef C_H 
#define C_H 

#include "b.h" 

typedef B& C 

#endif // C_H