Я работаю над созданием интерфейса для своих алгоритмов.Вложенный абстрактный класс и возвращающий абстрактный класс
У меня есть один базовый абстрактный класс и два производных класса. Внутри абстрактного класса базы он имеет второй абстрактный класс. В базовых производных классах каждый имеет второй производный класс.
структура будет выглядеть следующим образом:
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...
}
};
В главном,
Engine* myEngine;
std::vector<Engine::EngineStatus*> status = myEngine->getStatus();
Как я могу сделать это, или есть ли лучший способ сделать это?
Нет, это не сработало ... – Moved
Вы пытаетесь исправить ошибку компилятора? Если да, можете ли вы вставить ошибку, которую вы получаете ?. – kcraigie
Ничего, я вижу твою проблему. Я обновил свой ответ. – kcraigie