关于虚函数表的问题

来源:8-18 Hack对象模型和虚函数

慕侠1246815

2022-05-01

请问为什么这里子类对象s1里面会包含父类的private变量_color呢?private变量不是不能被子类继承的吗?
另外为什么_vfptr这个指向虚表的指针是否是每个子类对象所独有的呢?如果是,它为什么会在父类Shape里面呢?
图片描述

写回答

1回答

quickzhao

2022-05-03

C++的对象模型中每一个子类体内都包含其父类,只是private不可见而已。虚表是父类已有的虚函数指针处重新用子类的函数地址覆盖而已。

0
1
慕侠1246815
非常感谢!
2022-05-03
共1条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程