嘿,我试图使用MVS2010编译器多重继承纯虚函数。所以我可以为所有可渲染对象运行绘制。在派生类中实现虚方法的问题
因此,这里是图
在ASCII|Renderable | |Entity |
|virtual bool draw()=0;| | functions in here |
is - a is - a
Shape
如此看来它不会让我继承了纯虚函数?并实现虚拟功能。这是我的代码。
// Renderable.h
#ifndef H_RENDERABLE_
#define H_RENDERABLE_
class Renderable
{
public:
virtual bool Draw() = 0;
};
#endif
//Shapes.h
#ifndef H_SHAPES_
#define H_SHAPES_
#include "Renderable.h"
#include "Entity.h"
class Shapes : public Entity, public Renderable
{
public:
Shapes();
~Shapes();
};
#endif
//shapes.cpp
#include "Shapes.h"
Shapes::Shapes()
{
}
Shapes::~Shapes()
{
}
virtual void Shapes::Draw()
{
}
我试过多种东西,它也不起作用谷歌搜索。
我想你的意思//shapes.cpp 布尔形状::抽奖(){ } 代替 这 //shapes.cpp的 虚拟BOOL形状::抽奖(){ } 它 – WinterGreen
工作现在但为什么我必须声明它,这似乎有点愚蠢,它应该从它继承的类中引用。 – WinterGreen
@WinterGreen但是您通过在末尾指定= 0来声明方法Draw为纯虚拟,这意味着您强制任何继承类来定义该方法。 –