例如,我有一些类层次结构(可能具有各种继承 - 公共,私有,公共虚拟,多继承等):
class A {
int a;
public:
virtual ~A() {}
};
class B: public A { int b; };
class C: public virtual B { int c; };
class E: public virtual B { int e; };
class F: public C, public E { int f; };
Run Code Online (Sandbox Code Playgroud)
使用强制转换我得到指向主"大"对象的每个子对象的指针:
F * f = new F;
E * e = f;
C * c = f;
B * b = f;
A * a = f;
Run Code Online (Sandbox Code Playgroud)
我可以比较这些指针的哪些对等(运算符==)和为什么?比较是否会使用delta逻辑或其他技术?
当我无法比较指向同一复杂对象的指针时,有哪些可能的情况?它可以是什么样的物体?
我希望,所有指向同一对象的指针总是相等的.
c++ ×1