嘿,我試圖使用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爲純虛擬,這意味着您強制任何繼承類來定義該方法。 –