У меня есть три класса, базовый класс: устройство и два производных класса: смартфон и планшет.
Печать - это виртуальная функция, которая переопределена в производных классах.Я хотел бы создать вектор устройств STL (состоящий из экземпляров смартфона и планшетов), а затем распечатать имена объектов, находящихся в векторе.
vector<unique_ptr<Device>> devices(3);
devices[0].reset(new SmartPhone(128, 8));
// memory size, screen size
for (int i = 0; i < 3; i++)
{
devices[i].print();
}
У меня есть ошибки с моей векторной печатьюреализация:
класс "std :: unique_ptr>" не имеет члена "print"
Как я могу вызвать функцию печати каждого объекта в векторе?
Базовый класс устройства:
virtual void print(); {}
Производный класс смартфона:
void print();
-
void SmartPhone::print()
{
printName();
cout << "Memory: " << getMemory() << " Screen Size: " << getScreenSize();
}