最后那个程序的输出为4,1的原因是基类的析构函数不是虚函数,因此在执行的时候不能实现动态绑定,所以虽然将B类对象的指针向上转型赋值给A类对象指针后,虚函数会依照虚表指针的指向执行重写后的DO方法,即执行类B中的DO方法,第一个输出为4。但是A类的析构函数不是虚函数,因此在删除A类对象的指针时,会依然执行A类的析构函数(不是虚函数的方***根据指针的类型执行相应的方法),第二个输出为1。
8 1

相关推荐

09-17 17:09
门头沟学院 Java
雨忄:有人给出过解法,拖晚点去,然后到时候再找其他理由商量,既增加他们的筛人成本,不一定会给你收回offer ,也能占位避免工贼
秋招的嫡长offer
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务