C ++:类如何使用object作为参数

时间:2014-09-23 10:59:15

标签: c++

class Agent
{
public:
   Agent() {}
   ~Agent() {}
   virtual bool Do() = 0;
};

class GameAgent : public Agent
{
public:
    GameAgent() {}
    ~GameAgent() {}
};

我想将此GameAgent初始化为

GameAgent* m_pGameAgent = new GameAgent();

我收到了此错误消息。

  

错误12错误C2259:' GameAgent' :无法实例化抽象类

我该如何解决?我无法改变Agent的结构。

3 个答案:

答案 0 :(得分:3)

在您发布的代码中,GameAgentAgent都不是抽象的;所以我们必须猜测是什么原因造成你真实代码中的错误。

假设真实的Agent是抽象的(因为你说它是),那么GameAgent将必须覆盖它声明的任何纯虚函数,以便不是抽象本身。

答案 1 :(得分:1)

使类GameAgent不是抽象的。

答案 2 :(得分:1)

我在GameAgent中实现Do,并解决它 谢谢大家