未定义基类的问题

今天在写代码的时候 发现遇到一个 未定义基类的问题,郁闷了好久,通过查资料发现原来是

在OgreApp1.h的头文件中 include 了自己写的一个控制器类 #include “UnitManager.h”,

而只有UnitManager这个类重载BaseApplication的几个虚函数才能达到控制器的作用,而且OgreApp1这个类也是继承了BaseApplication这个类,所以我又在UnitManager这个类中继承了OgreApp1,因为必须有 #include "OgreApp1.h"。从而导致了

编译父类头文件时,当编译#include"UnitManager.h"时,展开子类编译,但在子类当编译到#include"OgreApp1.h"时,又回到父类头文件,此是已经过父类文件的“#pragma once”这句话,
所以当编译父类文件时,不能进入父类的定义语句,造成父类未定义


解决方案:

1.使用前置声明。。在OgreApp1.h中先添加 class UnitManager;

2.同时在OgreApp1.cpp中#include "UnitManager.h"


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值