Знаю, что если есть абстрактный клас(например: Account) и наследники абстрактного класа(PrivelegeAccount, SavingAccount), то можно через указатель на родительский класс(Account*) использовать наших наследников.
Так вот задача: У нас должен быть динамический массив аккаунтов разных типов. Как такое сделать и можно ли через vector такое сотворить?
С уважением.
Вам следует хранить элементы в векторе по указателю. Лучше использовать smart pointer. Что то вроде:
struct Account
{
virtual ~Account() = default; // Пожалуй все-таки не стоит забывать про виртуальный деструктор
virtual std::string GetMessage() = 0;
};
struct PrivelegeAccount final: public Account
{
virtual std::string GetMessage() override final { return "PrivelegeAccount"; }
};
typedef std::unique_ptr<Account> AccountPtr;
int main()
{
std::vector<AccountPtr> vector;
vector.emplace_back(std::make_unique<PrivelegeAccount>());
for (const auto& account : vector)
std::cout << account->GetMessage() << std::endl;
return 0;
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости