我找到了 C++ 中 typedef 前向声明的答案(https://stackoverflow.com/a/2095798)。但我的情况是这样的:
// a.h
typedef struct{
unsigned char bah0 : 1;
unsigned char bah1 : 1;
unsigned char bah2 : 1;
unsigned char bah3 : 1;
unsigned char bah4 : 1;
unsigned char bah5 : 1;
unsigned char bah6 : 1;
unsigned char bah7 : 1;
} bah;
// b.h
typedef struct bah; // Error: using typedef-name 'bah' after struct
class foo {
foo(bah b);
bah mBah;
};
// b.cpp
#include "b.h"
#include "a.h"
foo::foo(bah b)
{
mBah = b;
}
并且我不允许更改任何内容,a.h
并且我想避免包含a.h
在b.h
. 在这种情况下,如何避免此错误或转发 declarte bah 的正确方法是什么?
比你!兹拉坦