gpt4 book ai didi

c++ - 在派生类中实现虚方法的问题

转载 作者:行者123 更新时间:2023-11-28 08:16:40 26 4
gpt4 key购买 nike

嘿,我正在尝试使用 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()
{
}

我已经尝试了很多东西,但它也不起作用 google 搜索。

最佳答案

首先,您需要在 Shapes 类中再次声明绘图函数。然后确保它与 Renderable 类中声明的签名具有相同的签名。

//Shapes.h
#ifndef H_SHAPES_
#define H_SHAPES_
#include "Renderable.h"
#include "Entity.h"
class Shapes : public Entity, public Renderable
{
public:
Shapes();
~Shapes();

virtual bool Draw();

};


#endif

//shapes.cpp

bool Shapes::Draw()
{
}

关于c++ - 在派生类中实现虚方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com