У меня возникают проблемы с получением вектора объектов для печати имени производного класса, а не базового класса.Использование функции базового класса с значениями производного класса
Это мои классы
#include <vector>
#include <iostream>
using namespace std;
class Object
{
string name;
public:
string getName()
{
return name;
}
};
class Flashlight : public Object
{
string name = "Flashlight";
public:
string getName();
};
Это мое главное, он имеет вектор объектов и в этот момент просто нужно распечатать их имена.
int main()
{
vector<Object> items;
items.push_back(*new Flashlight);
for(int i = 0; i < items.size(); i++)
{
cout << i+1 << " " << items.at(i).getName();
}
}
Прямо сейчас, если я назначу то имя в объекте будет печатать это, но его не используют производные классы значения, я просто хочу, чтобы наследовать функцию затем использовать его собственные значения с ним. Я пробовал реализовать функцию в базовых классах (но, видя, что у меня может быть много таких в будущем, это приведет к большому количеству избыточного кода), но это тоже не сработает.
Вам нужен вектор указателей – ST3
Ваш код страдает от нарезки объектов. Поскольку у вас есть вектор «
@john: попытка переопределить переменную элемента также является серьезной проблемой. Оба должны быть решены. –