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

CMyClass * pobjMyClass = (CMyClass *)0xA5A5A5A5;

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

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

最佳答案

由于在分配发生之前引发了异常,因此pobjMyClass将是之前的状态-在您的情况下为0xa5a5a5a5。

07-24 09:45