出现这种错误,一般是头文件出现问题:
1.头文件互包含
2.头文件顺序
此错误是编译错误,和“inclued头文件“有关
问题描述
有三个头文件AgentSDK.h、AA.h、BB.h,其中CBB类继承自CAA。
头文件包含顺序如下,
1.AA.h包含AgentSDK.h
2.AgentSDK.h包含BB.h
3.BB.h包含AA.h
原因分析:编译器首先编译AA.h,,因其包含AgentSDK.h,引入AgentSDK.h继续编译。因为AgentSDK.h包含BB.h,载入BB.h内容准备编译。CBB继承自CAA,CAA尚未编译成功,此时VS2008错误列表中会出现error C2504:”CAA“: 未定义基类。此编译错误就是在编译AA.h头文件时出的错。
结:头文件在包含顺序上不要成闭合的环状,他们结构顺序最好应该是树。
接受失败,是我们不常听到或看到的一个命题,我们大都接受的是正面的教育,