我在获取对象向量以打印派生类的名称而不是基类的名称时遇到问题。
这些是我的课
#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();
}
}
现在,如果我为 Object 中的名称分配某些内容,它将打印该名称,但它不使用派生类值,我只希望它继承该函数,然后使用它自己的值。我已经尝试在基类中实现该函数(但看到我将来可能有很多这样的函数会导致大量冗余代码)但这也不起作用。