当新的类构造函数在C++中引发异常时,对象指针的状态将是什么?以以下代码为例:
CMyClass * pobjMyClass = (CMyClass *)0xA5A5A5A5;
try
{
pobjMyClass = new CMyClass(); // Exception thrown in constructor
}
catch ( ... ) {}
抛出异常后,执行此代码时,
pobjMyClass
的值是什么?指向CMyClass
,0xA5A5A5A5
,NULL
,无效的未初始化值或其他某些无效实例的指针?谢谢。 最佳答案
由于在分配发生之前引发了异常,因此pobjMyClass将是之前的状态-在您的情况下为0xa5a5a5a5。