error C2504: 未定义基类

此错误是编译错误,和“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头文件时出的错。

 结:头文件在包含顺序上不要成闭合的环状,他们结构顺序最好应该是树。

你可能感兴趣的:(error C2504: 未定义基类)