c++ - 下面在 [class.derived]/7 中突出显示的“相同类型”的表达是什么意思?
问题描述
[注意:基类子对象的布局([basic.stc])可能与同类型的最派生对象的布局不同。基类子对象的多态行为 ([class.cdtor]) 可能不同于同类型的最派生对象的多态行为。基类子对象的大小可能为零([class]);但是,具有相同类类型且属于同一个最派生对象的两个子对象不能分配在同一地址([expr.eq])。——尾注]
解决方案
struct B { /* ... */ };
struct D : B { /* ... */ };
B b;
D d;
的基类子对象B
的d
布局可能b
与同类型 ( B
) 的最派生对象(此处)不同。例如,一个实现可以重用B
forD
成员的尾部填充。
推荐阅读
- android - 如何确定如何使用 APK 依赖项?
- python - pywinauto,不识别子窗口
- r - 闪亮的应用程序在本地加载时间与部署在远程服务器上时
- python - 如何从 ListView 获取 pk 值并使用它?
- python-3.7 - 遍历带有嵌套列表的字典并创建文件夹和子文件夹
- xml - 谷歌应用脚本 Xmlservice
- html - 为什么我的导航栏链接只能在主页上使用?
- javascript - ASP.NET 在 TextBox 按键上更新 ListBox
- javascript - 节点模块:module.exports 和 require() 不适用于本地模块
- windows - 典型的蛇游戏。如何跟踪蛇?