Jim*_*ell 5 c++ constructor exception visual-studio-2008
当新的类构造函数在C++中引发异常时,对象指针的状态是什么?以下面的代码为例:
CMyClass * pobjMyClass = (CMyClass *)0xA5A5A5A5;
try
{
pobjMyClass = new CMyClass(); // Exception thrown in constructor
}
catch ( ... ) {}
Run Code Online (Sandbox Code Playgroud)
pobjMyClass
抛出异常后,当这段代码执行的值是什么时?一个指向一个无效的情况下CMyClass
,0xA5A5A5A5
,NULL
,一些随机初始化值,或其他什么东西?谢谢.
由于在赋值发生之前抛出异常,pobjMyClass将是以前的任何东西 - 在你的情况下,0xa5a5a5a5.