参数化杜撰性

参数化虚拟性#includeiostreamusing namespace stdclass NotVirtual{void foo(){}}class Virtual{publ

参数化虚拟性

#include<iostream>using namespace std;class NotVirtual{    void foo(){    }};class Virtual{public:    virtual void foo(){    }};template<typename VBase>class Base:private VBase{public:    void foo(){        cout << "Base::foo()"<<endl;    }};template<typename V>class Derived:public Base<V>{public:    void foo(){        cout << "Derived::foo()"<<endl;    }};int main(){    Base<NotVirtual>*p1=new Derived<NotVirtual>;    p1->foo();    Base<Virtual>*p2 = new Derived<Virtual>;    p2->foo();}Base::foo()Derived::foo()