对于以下代码
class A
{
public:
~A()
{
std::cout << "a" << std::endl;
}
};
class B : public A {
public:
virtual ~B()
{
std::cout << "b" << std::endl;
}
};
int main()
{
B* b = new B();
A* a = b;
if (a == b)
{
}
delete a;
}
问题是,“a”是否等于“b”?这是为什么以及如何发生的?指针的真正含义是什么?不仅仅是地址和内存块的长度?