gpt4 book ai didi

c++ - 抽象类中的 vector

转载 作者:行者123 更新时间:2023-11-28 01:14:10 26 4
gpt4 key购买 nike

我相信问题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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com