god*_*amp 10 c++ pointers multiple-inheritance
例:
class A{
int x;
};
class B{};
class C : public A, public B {};
C c;
A* a = &c;
B* b = &c;
Run Code Online (Sandbox Code Playgroud)
当我检查&c和b的值时,它们是不同的,因为b在内存之后,但是当我评估&c == b时,它们是相同的,为什么会这样?
CB *_*ley 12
在表达式中,&c == b两个操作数都必须被强制转换为相同的类型.在这种情况下,&c(a C*)可以转换B*为B可访问的基类C.这与发生的转换完全相同,B* b = &c因此结果值相同,比较返回true.
| 归档时间: |
|
| 查看次数: |
1326 次 |
| 最近记录: |