3.3構(gòu)造函數(shù)類型轉(zhuǎn)換中的例題P47~P48
教材中程序輸出:
Initializing 0 //建立對象Try
Initializing 5 //建立隱藏對象
Destroying 5 //析構(gòu)第一次建立的對象Try
5 //輸出建立的隱藏對象之數(shù)據(jù)
Initializing 10 //由強制類型轉(zhuǎn)換建立數(shù)據(jù)為10的對象
Destroying 10 //析構(gòu)建立的隱藏對象Try(num=5)
10 //輸出由強制類型轉(zhuǎn)換建立對象的數(shù)據(jù)
Destroying 10 //析構(gòu)由強制類型轉(zhuǎn)換建立對象Try(num=10)
但是當你在構(gòu)造函數(shù)和析構(gòu)函數(shù)中輸出this指針時,你就會發(fā)現(xiàn)雖然上面的輸出正確,但注釋卻說明了嚴重的錯誤。析構(gòu)的對象完全亂了!
正確的注釋如下:
Initializing 0 //建立對象Try
Initializing 5 //建立隱藏對象
Destroying 5 // 析構(gòu)新建的隱藏對象
5 // 輸出Try對象的數(shù)據(jù)
Initializing 10 //由強制類型轉(zhuǎn)換建立數(shù)據(jù)為10的對象
Destroying 10 // 析構(gòu)新建的隱藏對象Try(num=10)
10 // 輸出Try對象的數(shù)據(jù)
Destroying 10 // 析構(gòu)Try對象
教材中程序輸出:
Initializing 0 //建立對象Try
Initializing 5 //建立隱藏對象
Destroying 5 //析構(gòu)第一次建立的對象Try
5 //輸出建立的隱藏對象之數(shù)據(jù)
Initializing 10 //由強制類型轉(zhuǎn)換建立數(shù)據(jù)為10的對象
Destroying 10 //析構(gòu)建立的隱藏對象Try(num=5)
10 //輸出由強制類型轉(zhuǎn)換建立對象的數(shù)據(jù)
Destroying 10 //析構(gòu)由強制類型轉(zhuǎn)換建立對象Try(num=10)
但是當你在構(gòu)造函數(shù)和析構(gòu)函數(shù)中輸出this指針時,你就會發(fā)現(xiàn)雖然上面的輸出正確,但注釋卻說明了嚴重的錯誤。析構(gòu)的對象完全亂了!
正確的注釋如下:
Initializing 0 //建立對象Try
Initializing 5 //建立隱藏對象
Destroying 5 // 析構(gòu)新建的隱藏對象
5 // 輸出Try對象的數(shù)據(jù)
Initializing 10 //由強制類型轉(zhuǎn)換建立數(shù)據(jù)為10的對象
Destroying 10 // 析構(gòu)新建的隱藏對象Try(num=10)
10 // 輸出Try對象的數(shù)據(jù)
Destroying 10 // 析構(gòu)Try對象

