Массив базового абстрактного класса, содержащий дочерний класс в C ++
так что у меня топ класс, скажем так
//Top.h
#pragma once
#include
using std::string;
class Top
{
protected:
string name;
public:
virtual string GetName() = 0;
}
Этот класс выигралне может быть никакого объекта Top, например,почемуабстрактный класс. У меня тоже два средних класса, скажем так:
//MiddleA.h
#pragma once
#include "Top.h"
class MiddleA : public Top
{
protected:
int value;
public:
MiddleA(string, int);
string GetName();
int GetValue();
}
//MiddleB.h
class MiddleB : public Top
{
protected:
double factorial;
public:
MiddleB(string, double);
string GetName();
double GetFactorial();
double Calculate(int);
}
Теперь мне нужен массив или что-нибудь, что может содержать несколько объектов типа MiddleA, MiddleB или любых классов, которые наследуются от этих двух классов. Есть ли способ сделать это в C ++?
РЕДАКТИРОВАТЬ : Будет ли это "приемлемый" добавить конструктор по умолчанию в защищенном разделе и использовать вектор или массив из Top?