为什么我可以制作抽象对象的矢量?

d33*_*tah 3 c++ abstract-class vector

为什么这段代码会编译?

#include <vector>
using namespace std;

class A
{
        virtual void a() = 0;
};

int main()
{
        vector<A> a;    //won't fail
        //A b;            //that will
}
Run Code Online (Sandbox Code Playgroud)

Let*_*_Be 6

因为模板.你不会发生任何事情.尝试使用resize(),或其他一些方法.那会失败.