2016-04-05 9 views
2

typedefs A、B、およびCを持つヘッダーファイルheader1.hがあるとします。BはAを使用し、CはBを使用するため、typedefの順序が強制されます。今私はtypedef Bが本当にそれ自身のヘッダファイル(header2.h)にあるべきだと決めました。しかし、header1のheader2を含めることはできません(typedef BはCの前にあるため)、header2のheader1も含めることはできません。私は型を宣言しようとしましたが、これはそれらを指すときにのみ機能すると思います。それ以外の場合、コンパイラは依然として「不完全型」エラーを返します。C++ヘッダーファイルの構成

答えて

2

あなたがここで行うことができるのは、すべてのtypedefを独自のヘッダーに移動して、それらを任意の順序で含めることだけです。このように:

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 
関連する問題