|
|
我们知道:一个类中有了一个纯虚函数就成为了抽象类,编译器可以保证ABC不能实例化。
我是模仿写OGRE海洋的例子程序但是一开始就出现:不能实例化抽象类
主要是我的帧监听继承了:
public OIS::KeyListener,public OIS::MouseListener
只要继承了这两个基类就不行,就无法实例化抽象类。但是例子有可以。
代码如下:
#ifndef _MyOgreDemo_H_
#define _MyOgreDemo_H_
#include "Ogre.h"
#include "OgreConfigFile.h"
#include "OgreStringConverter.h"
#include "OgreException.h"
#include "OgreString.h"
#include "CEGUI/CEGUI.h"
#include <OIS/OIS.h>
#include "CEGUI/CEGUIForwardRefs.h"
#include "OgreCEGUIRenderer.h"
#include "OgreFrameListener.h"
#include <cstdlib>
#define UVECTOR2(x, y) UVector2(cegui_reldim(x), cegui_reldim(y))//窗口点换算
class MyOgreDemo_FrameListener : public Ogre::FrameListener, public OIS::KeyListener,public OIS::MouseListener//就在这类继承了OIS类,有它就不行。
{
public:
MyOgreDemo_FrameListener(MyOgreDemo* main)
{
};
MyOgreDemo_FrameListener()
{
};
virtual ~MyOgreDemo_FrameListener()
{
};
bool frameStarted(const Ogre::FrameEvent& evt);
};
MyOgreDemo_FrameListener mFrameListener;//这里想实例化,就报出:不能实例化抽象类的错
但是我是按着例子来的,为什么会这样的,难道是和设计模式关系上了,我对它比较生疏的。
请能者赐教!
先3Q了
[em17] [em17] [em17] |
|