未定义基类的问题

来源:互联网 发布:什刹海 知乎 编辑:程序博客网 时间:2024/05/27 09:48

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

在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"


0 0
原创粉丝点击