父类指针的问题
A是父类,B是A的子类;
B* b1 = new B();
B* b2 = new B();
当b1和b2是不同的实例的时候,有没有可能 (A*)b1 == (A*)b2 呢?
恳求大虾指点!!!!!!!!!!!!!!!!!!!急
[解决办法]
楼上说的很有明白,但就你问的问题,个人觉得(A*)b1 == (A*)b2是不可能相等的,因为b1和b2分别是指向两块不同的内存地址,就指针本身来说,实际上就是两个不同的“数值”,无论你怎么强制转换,它们也不会相等
[解决办法]
虚函数表,楼主百度一下吧
[解决办法]
不可能相等,放心好了。如果是单根继承(void*)(A*)b1 == (void*)b1,有多继承时可能不同。
百度一下C++对象模型
[解决办法]
两个实例再什么继承什么的也是不同的内存。
可以定义bool operator ==运算符来比较内容而不是地址.