【发布时间】:2015-10-08 05:47:27
【问题描述】:
阅读以下正在使用的程序 reinterpret_cast。
#include <iostream>
class A
{
public:
A() : m_i(0) { }
protected:
int m_i;
};
class B
{
public:
B() : m_d(0.0) { }
protected:
double m_d;
};
class C : public A , public B
{
public:
C() : m_c('a') { }
private:
char m_c;
};
int main()
{
C c;
A *pa = &c;
B *pb = &c;
bool z = (reinterpret_cast<char*>(pa) == reinterpret_cast<char*>(pb));
std::cout << z;
return 0;
}
运行这个程序后它会打印 0,谁能解释一下 为什么 z 在这个程序中是假的??
【问题讨论】:
标签: c++ reinterpret-cast