我相信问题here是相似的,但我仍然需要对此进行更多说明。
假设我在抽象类(存储另一个类的对象)中创建了一个 vector 。如果我无法初始化抽象类的对象,我如何能够使用另一个类的 .pushback()?
显然,最简单的解决方案是将 vector 放在另一个类中,但我需要另一种方法。我读过你可以通过将指向这些对象的指针存储在一个 vector 中来做到这一点。但是有人可以给我举个例子吗?
最佳答案
抽象类的目的是提供一个接口(interface),然后在具体的派生类中实现。
如果你想将项目推送到作为抽象类的数据成员的 vector 上,然后创建一个适当的派生类,然后你可以创建该派生类的实例,因此它将包含一个你可以添加条目的 vector 到。
class Base{
public:
virtual void do_stuff()=0; // this is an abstract base class
protected:
std::vector<int> data;
};
class Derived: public Base
{
public:
void do_stuff() {
// concrete implementation
data.push_back(42); // can add values to vector inherited from base class
}
};
int main()
{
Derived d;
d.do_stuff(); // will add entries to d.data
}
但是,我想知道这是否真的是您想要实现的目标。
关于c++ - 抽象类中的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59245703/