c++类中使用的静态结构成员,其申明必须和该类的头文件写在一起吗?

来源:百度知道 编辑:UC知道 时间:2024/05/14 15:17:11
如果我把结构体的申明放在其他头文件中(例如:A.h),再在类的头文件中包含A.h,这样就会出错。请达人解释一下。。。。
没有重复包含,如果我把结构A的申明写在类C的c.h文件中,那么我就可以在C中定义static A a;但是如果我把结构A的申明放在其他的头文件中,比如b.h,我再在c.h中包含b.h,这样一来我就没办法在C中定义static A a;百思不得其解...............
真的没有重复包含,各位大哥,还有其他解释吗?比如编译的顺序?申明静态变量是否和编译顺序有关、、、、

建议对你的头文件做下面的变更,以保证不会重复包含同一个头文件:

#ifndef INCLUDE_XXXX_H
#define INCLUDE_XXXX_H

你的头文件

#endif

很头痛哦,dump出个出错信息来看看呵呵

如果你只有一个.CPP文件和一个.H文件应该不会出现这种问题的。
你是不是多文件编绎链接出错啊!你最好查一下是不是重复包含头文件了。
把你的文件贴出来吧。你的b.h还被别的地方包含吗?