假设我有一堆有关类实例的有效指针A.我能安全且可移植地假设指针在整个对象生命周期内保持不变吗?换句话说,我可以使用指向对象的指针作为唯一对象ID吗?
当然; 我不明白为什么不.
内存地址几乎就是对象标识的定义(暂时取出等式中的类型).
不一定 - 这取决于您如何分配这些实例以及随后对它们执行的操作.例如,假设您创建了一个对象数组,然后重新分配该数组.现在无法保证对象仍将驻留在同一位置.
虽然内存地址唯一标识一个对象通常是正确的。有两个重要的警告:
当一个对象被删除时,地址可能会被重用(很可能是同一类的对象)。
如果您使用不同的进程,则两个进程中的地址很可能相同。