Предположим, у меня есть заголовочный файл header1.h с typedefs A, B и C. B использует A и C использует B, поэтому порядок typedefs принудительно. Теперь я решил, что typedef B действительно должен быть в собственном файле заголовка (header2.h). Но я не могу включить header2 из header1 (потому что тогда typedef B был бы до C), я также не могу включить header1 из header2. Я пытался направить объявления типов, но я думаю, что это работает только при указании на них. В противном случае компилятор по-прежнему дает ошибку «неполного типа».Организация файлов заголовков C++
2
A
ответ
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