base b=der()的执行过程是这样的:1、构造一个栈上的der临时对象2、调用base的拷贝构造函数,将der对象作为参数传入,此时der对象会隐式转化为base对象3、base对象构造完,der临时对象销毁最终结果就是构造了一个栈上的base对象,你用b肯定只能调用base的函数;base *bp=new der()的执行过程是这样的:1、在堆上构造一个der对象2、bp指针指向这个对象这种情况下,bp的静态类型是base,但是动态类型是der,因此会触发虚函数机制,调用der的虚函数实现