2010-11-30 22 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。