为什么a/d/e和b并没有继承关系,转化后依然可以输出子类的内容? 这是因为静态绑定。 个人理解,大神们轻拍。 v.push_back(new d); v.push_back(new a); v.push_back(new x); v.push_back(new b); v.push_back(new e); v里面的5个指针,在编译的时候都已经知道所指对象的虚函数表中的函数实现(静态绑定)。 后续虽然有指针的类型转换,但是指针所指向的对象没有变,就不存在动态绑定。 vptr是保存在对象的内存空间中的,这点很重要。
点赞 7

相关推荐

26应届求职ing:你这是报了豆音四哥的班?双非本硕拿这两个项目写简历里投100多家嵌软也没什么面试,感觉项目简单了,很多人用
点赞 评论 收藏
分享
12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务