我正在研究指针,我想出了类似的代码
class b
{
}
class d
{
}
d* a = 0;
b *t = new b();
*t = * ( b* )a;
这个声明是什么意思?
有什么价值?
答案 0 :(得分:6)
t
仍将指向使用new b();
创建的对象。 *t =
更改了t
指向的值,而不是t
本身的值。
您的最后一行包含未定义的行为,因为您正在解除空指针。此外,你的演员实际上是伪装的reinterpret_cast
,这是你不应该做的事情。