1 回答

TA貢獻1828條經(jīng)驗 獲得超13個贊
首先,必須明白,凡是被static修飾的變量都會永久保存程序結束前的每一次更改,并且其在內(nèi)存中是唯一的。
然后,代碼創(chuàng)建了一個CDummy類,并在該類中聲明了一個靜態(tài)(static)的成員變量n,然后定義了構造函數(shù)CDummy()和析構函數(shù)~CDummy()。構造函數(shù)將在創(chuàng)建對象時被調(diào)用,析構函數(shù)在刪除對象時調(diào)用。int CDummy::n=0;講n初始化為0(這是不必要的,靜態(tài)變量默認初始化為0,但是對每一個變量進行初始化時良好的編程習慣。)
主函數(shù)先創(chuàng)建了一個CDummy類的對象a,那么此時構造函數(shù)被調(diào)用,即n++,執(zhí)行完該語句后n為1;接著主函數(shù)創(chuàng)建了一個對象數(shù)組b[5],即創(chuàng)建了5個CDummy類的對象,n++執(zhí)行5次,此時n為6;同理,CDummy *c=new CDummy;用另一種方式創(chuàng)建了對象c,n再加1,為7,所以第一個輸出是7,然后c被刪除,析構函數(shù)被調(diào)用,n--,你變?yōu)?,第二個輸出是6。
最后兩句是為了防止執(zhí)行時窗口一閃而過。一句就夠了
- 1 回答
- 0 關注
- 193 瀏覽
添加回答
舉報