2010-11-30 21 views
5

什么将是一个对象指针的状态,当一个新的类的构造函数抛出C++异常?看看下面的代码,例如:对象指针状态新的构造后抛出异常 - C++

CMyClass * pobjMyClass = (CMyClass *)0xA5A5A5A5; 

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

当这个代码执行会有什么的pobjMyClass值是,抛出异常后?一个指向CMyClass无效的情况下,0xA5A5A5A5NULL,一些随机初始化值,或其他什么东西?谢谢。

+0

当然你已经尝试过了吗? – TonyK 2010-11-30 20:57:10

+2

@TonyK,尝试的东西只提供了一半的答案 - 它如何在你的*编译器上工作。了解它如何普遍运作通常很有用。 C++充满了陷阱,谨慎是件好事。 – 2010-11-30 21:16:54

回答

6

由于转让发生前的异常被抛出,pobjMyClass会不管它是什么之前 - 在你的情况,0xa5a5a5a5。