抽象类和指针
Abstract classes and Pointers
我有一个类
我想要一个抽象类。
class Foo
{
public:
virtual void bar()=0;
};
我希望这个抽象的小卡在整个程序中使用:)享受多态性。
class EatFoo
{
public:
vector<Foo> fooV; // not working
vector<Foo *> fooPV;
};
我收到一个编译时错误,抽象类无法实例化。
是的,这是真的,但我真的想要或我想学习:
如何让其他程序员"必须 - 必须"实现某些功能,我不想在我的程序中使用指针。[我不知道为什么?但我有那种直觉..]
是否有一些模式或东西可以帮助我。使用java,它是所有的引用,是的,它是可行的。
谢谢。
如果您希望容器项具有多态行为,则别无选择,只能使用指针。为了使您的生活尽可能轻松,您应该使用智能指针,例如 shared_ptr<Foo>
.
你的直觉是对的...部分地。。。
不应使用原始指针:
class EatFoo
{
public:
vector<shared_ptr<Foo> > fooV;
};
C++不可能拥有抽象对象的集合。
相关文章:
- 如何将子类作为函数的参数传递给期望基类,然后将该对象传递到指向这些抽象类对象的指针向量中?
- 两个抽象类,派生自同一个基类.如何访问从一个抽象类到另一个抽象类的指针
- 删除指向抽象类的指针向量
- 如何将抽象类指针作为Q_PROPERTY?
- 为什么我可以取消引用指向抽象类的指针?
- 指向抽象类的指针数组:指向 nullptr 或不指向 nullptr (C++)
- C++ abort() 在函数内的抽象类对象指针调用上
- 抽象类和独特的指针
- 如何使用抽象类指针避免内存泄漏
- 如何从抽象类中删除指针
- 指向模板抽象类的指针向量
- 指针到抽象类的功能超载
- 使用抽象类时,如何正确删除指针
- 抽象类和唯一指针 c++ 错误
- 尝试在映射C++中存储指向抽象类的指针
- 如何使用 Rcpp 公开抽象类的指针?
- 抽象类和指针
- 重写指向抽象类的指针的引用值无效
- 使用智能指针将右值引用绑定到抽象类的替代方法
- 指向抽象类的指针