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