新构造函数引发异常后的对象指针状态 - C ++

时间:2010-11-30 20:51:52

标签: c++ visual-studio-2008 exception constructor

当新的类构造函数在C ++中抛出异常时,对象指针的状态是什么?以下面的代码为例:

CMyClass * pobjMyClass = (CMyClass *)0xA5A5A5A5;

try
{
    pobjMyClass = new CMyClass(); // Exception thrown in constructor
}
catch ( ... ) {}

当此代码执行pobjMyClass的值时,抛出异常后会是什么?指向CMyClass0xA5A5A5A5NULL,某些随机未初始化值或其他内容的无效实例的指针?感谢。

1 个答案:

答案 0 :(得分:6)

由于在赋值发生之前抛出异常,pobjMyClass将是以前的任何东西 - 在你的情况下,0xa5a5a5a5。