用法大概像这样:
class A
{
public:
virtual void print(){cout<<"A.";}
};
class B:public A
{
public:
virtual void print(){cout<<"B.";}
};
class D:public B
{
virtual void print(){cout<<"D.";}
};
void f()
{
A* pA;
vector VEC;
VEC.push_back(new A);
VEC.push_back(new B);
VEC.push_back(new D);
Gettor()(VEC)->print();
Gettor()(VEC)->pring();
}