现场还原
语言:C++
我有一个 IHandler 接口,多个实现(如:HandleByBoss)
HandleByBoss 实现 IHandler 接口,所以必须 #include “IHandler.h”
但是我犯了一个错误,我在 IHandler 接口里面存在对具体实现类的依赖,即 #include “HandleByBoss”
异常出现原因
直接原因
编译器无法识别继承列表里面的类名
本质原因
通过从 main.cpp 开始检查头文件(注意头文件多次引入保护#ifndef),会发现:由于循环依赖的原因,导致在编译器看到“继承列表”的时候并没有得到继承类名称的定义。
解决方案
避免在代码设计的时候出现循环依赖