我有一个名为Enemy的课程,另一个叫做groundenemy1。我一直得到同样的错误不能"实例化抽象类",这些是我的两个类,我在互联网上搜索但我无法解决它。我希望有人可以帮助我。
#pragma once
#include "Vector2f.h"
#include "CollisionManager.h"
class Enemy
{
public:
Enemy(CollisionManager &collmanager);
virtual ~Enemy();
void Move(Vector2f move);
void Update(float elapsedsec);
virtual void Draw() =0;
protected:
bool m_Jump;
Rectf m_Shape;
Vector2f m_Velocity,m_InputVelocity;
CollisionManager m_CollManager;
float m_Jumpspeed, m_Acceleration,m_JumpCooldown,m_WalkSpeed;
};
class GroundEnemie1 :public Enemy
{
public:
GroundEnemie1(CollisionManager &collmanager,Sprite &sprite,Rectf shape);
virtual ~GroundEnemie1();
void Draw() override;
protected:
Sprite m_Sprite;
};
答案 0 :(得分:2)
你不能从抽象类声明一个对象
因为virtual void Draw() = 0
函数你的Enemy类是一个抽象类但你可以实例化一个对象GroundEnemie1
轻松理解
你的GroundEnemie1类可以叫做Dog,还有一个Cat类,一个Fish类。所有这些类都继承自Animal(Enemy for you)。 你不能直接实例化动物,你必须更准确,你要根据你的需要来养狗,猫,鱼,