【发布时间】:2014-10-31 19:45:09
【问题描述】:
如果,在对象的生命周期结束之后并且在存储之前 被占用的对象被重用或释放,一个新的对象是 在原始对象占用的存储位置创建,a 指向原始对象的指针,引用的引用 到原始对象,或者原始对象的名称将 自动引用新对象,并且一旦生命周期 新对象已启动,可用于操作新对象,如果:
——新对象的存储正好覆盖存储位置 原始对象占据了哪个位置,以及
——新对象属于 与原始对象相同的类型(忽略顶层 cv 限定符),以及
— 原始对象的类型不是 const 限定的,并且,如果 类类型,不包含任何类型为 const 限定或引用类型,以及
——原始对象是 类型 T 的最衍生对象(1.8),新对象是最 T 类型的派生对象(也就是说,它们不是基类 子对象)。
不清楚是什么类型的意思?动态型还是静态型?我认为,它是静态类型,否则后一种限制是没有意义的。
【问题讨论】:
-
这个问题看起来和另一个问题很相似......也许有点不同,但肯定不会太大:)
-
“对象类型”始终是明确的。您可能正在考虑表达式的类型或变量的类型,但这与这里无关。