C++ 抽象类和指针

C++ 抽象类和指针,c++,class,pointers,polymorphism,virtual,C++,Class,Pointers,Polymorphism,Virtual,我有一节课 //我想要一个抽象类 class Foo { public: virtual void bar()=0; }; //我想让这个抽象的计算器在整个程序中使用:)来享受多态性 class EatFoo { public: vector<Foo> fooV; // not working vector<Foo *> fooPV; }; 类EatFoo { 公众: 向量fooV;//不工作 矢量fooPV; }; 我得到一个编译时

我有一节课

//我想要一个抽象类

class Foo
{
    public:
    virtual void bar()=0;
};
//我想让这个抽象的计算器在整个程序中使用:)来享受多态性

class EatFoo
{
public:
    vector<Foo> fooV; // not working
    vector<Foo *> fooPV;
};
类EatFoo
{
公众:
向量fooV;//不工作
矢量fooPV;
};
我得到一个编译时错误,无法实例化抽象类

是的,这是真的,但我真的想或我想学习:

如何让其他程序员“不得不”实现一些功能,我不想在我的程序中使用指针。[我不知道为什么?但我有那种直觉….]

有什么模式或东西可以帮我吗。 对于java,它是所有的参考,是的,它是可行的


谢谢。

如果您想要容器项的多态行为,您别无选择,只能使用指针。为了让你的生活尽可能简单,你应该使用智能指针,比如
共享\u ptr

你的直觉是正确的。。。部分

您不应该使用原始指针:

class EatFoo
{
public:
    vector<shared_ptr<Foo> > fooV;
};
类EatFoo
{
公众:
矢量fooV;
};
< C++中没有抽象对象集合。