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