首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套抽象类和返回抽象类

嵌套抽象类和返回抽象类
EN

Stack Overflow用户
提问于 2015-11-18 21:15:01
回答 1查看 218关注 0票数 0

我正在为我的算法创建一个接口。

我有一个基本抽象类和两个派生类。在基类中,它有第二个抽象类。在基类中,每个类都有第二个派生类。

结构看起来如下:

代码语言:javascript
复制
class Engine {
public:
  class EngineStatus {
    // abstract class 
    ...
  };
  Engine(){};
  virtual ~Engine();
  virtual std::vector<EngineStatus*> getStatus() = 0;
private:
  std::vector<EngineStatus> m_status;
};

// Derived class
class OneEngine : public Engine {
  public OneEngineStatus : public EngineStatus {
    // Derived class
    ...
  };
  ...

  std::vector<EngineStatus*> getStatus()
  {
    return m_status;   // Compiler error...
  }
};

// Derived class
class AnotherEngine : public Engine {
  public AnotherEngineStatus : public EngineStatus {
    // Derived class
    ...
  };
  ...

  std::vector<EngineStatus*> getStatus()
  {
    return m_status;   // Compiler error...
  }
};

总体来说,

代码语言:javascript
复制
Engine* myEngine;
std::vector<Engine::EngineStatus*> status = myEngine->getStatus();

我怎样才能做到这一点,或者有没有更好的方法来做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-18 21:18:29

我看到了您的问题,成员m_status是std::vector<EngineStatus>类型,但是您的方法签名返回std::vector<EngineStatus*>类型。因此,您必须将m_status更改为std::vector<EngineStatus*>类型,然后让它保存指针。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33790516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档