你好 我有类AA.h,我已经定义的结构内:在C++中,如何让类在不包含头的情况下识别结构?
#include "BB.h"
Struct foo{
};
Class AA
{
…
void funa()
{
BB bb;
foo f;
bb.func(f);
}
….
};
我的问题是我必须还包括AA.h在BB.h文件,以便它将识别FOO结构或者有什么我可以做的吗?
你好 我有类AA.h,我已经定义的结构内:在C++中,如何让类在不包含头的情况下识别结构?
#include "BB.h"
Struct foo{
};
Class AA
{
…
void funa()
{
BB bb;
foo f;
bb.func(f);
}
….
};
我的问题是我必须还包括AA.h在BB.h文件,以便它将识别FOO结构或者有什么我可以做的吗?
看起来最简单的是为你的结构创建一个头,然后将它包含在你的AA和BB中。
#ifndef __FOO__H__
#define __FOO__H__
struct foo {
};
#endif
我想你想在BB.h
中使用foo
。但是,您不能在BB.h
中包含AA.h
,因为它会引入循环依赖项,编译将失败。解决此问题的最简单方法是在单独的源文件中提供A::funa
的实现(通常使用.cpp
扩展名)。你只需要在头文件中声明funa();
没有任何实现。如果你这样做,那么就不需要在AA.h
中包含BB.h
(你需要在AA.cpp
中包含BB.h
),从而避免循环依赖。