C++构造与析构(18) - 静态对象(static object)何时销毁
生活随笔
收集整理的這篇文章主要介紹了
C++构造与析构(18) - 静态对象(static object)何时销毁
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C++的static關(guān)鍵字
static關(guān)鍵字可以用于修改局部變量,函數(shù),類的數(shù)據(jù)成員以及對(duì)象。靜態(tài)局部變量只初始化一次,然后在每次函數(shù)調(diào)用時(shí)都保持它的值。靜態(tài)成員函數(shù)可以直接用類來(lái)調(diào)用,不需要?jiǎng)?chuàng)建對(duì)象來(lái)調(diào)用。同時(shí),C++也支持靜態(tài)對(duì)象。C++的靜態(tài)對(duì)象(static object)
當(dāng)使用static關(guān)鍵字聲明一個(gè)對(duì)象時(shí),此對(duì)象就變成了靜態(tài)對(duì)象。見下面兩個(gè)表達(dá)式。 Test t; // 棧上的對(duì)象 static Test t1; // 靜態(tài)對(duì)象第一個(gè)表達(dá)式會(huì)在棧上分配一個(gè)對(duì)象。也被稱為自動(dòng)對(duì)象或局部對(duì)象。局部對(duì)象在每次聲明它時(shí)就會(huì)創(chuàng)建。而靜態(tài)對(duì)象只初始化一次,并且在整個(gè)程序的生命周期中都存在。
靜態(tài)對(duì)象保存在靜態(tài)存儲(chǔ)區(qū)。在程序結(jié)束時(shí),它就會(huì)被銷毀。C++既支持局部靜態(tài)對(duì)象,也支持全局靜態(tài)對(duì)象。
下面例子演示了局部靜態(tài)對(duì)象的使用:
[cpp] view plaincopy print?
輸出:
main() starts Constructor is executed main() terminates Destructor is executed從結(jié)果可以看到,只有在主函數(shù)main()結(jié)束時(shí),才會(huì)調(diào)用到析構(gòu)函數(shù)。
如果刪除掉上面程序中的關(guān)鍵字static,則會(huì)得到下面結(jié)果:
main() starts Constructor is called Destructor is called main() terminates全局靜態(tài)對(duì)象
參考下面例子: [cpp] view plaincopy print?輸出:
Constructor is executed main() starts 10 main() terminates Destructor is executed 與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的C++构造与析构(18) - 静态对象(static object)何时销毁的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java程序单引号报错,javapoig
- 下一篇: C++之全局对象、局部对象、静态对象详解