((sub*)p)->test();//输出结果是i am sub,为什么base类的test加上virtual,结果就是i am base?
#include <iostream>using namespace std;class base{public: void test() { cout<<"i am base"<<endl; }};class sub:public base{public: void test() { cout<<"i am sub"<<endl; }};int main(){ base* p = new base; ((sub*)p)->test();}