返回引用和返回值的區(qū)別 程序里面全局變量的構(gòu)造函數(shù)和析構(gòu)函數(shù)什么時(shí)候調(diào)用?
程序里面全局變量的構(gòu)造函數(shù)和析構(gòu)函數(shù)什么時(shí)候調(diào)用?在創(chuàng)建對(duì)象時(shí)調(diào)用構(gòu)造函數(shù),例如在主函數(shù)AA中聲明類classA{…}:在定義對(duì)象a時(shí),調(diào)用構(gòu)造函數(shù)。默認(rèn)構(gòu)造函數(shù)是無(wú)參數(shù)的。構(gòu)造函數(shù)相當(dāng)于初始化對(duì)象a
程序里面全局變量的構(gòu)造函數(shù)和析構(gòu)函數(shù)什么時(shí)候調(diào)用?
在創(chuàng)建對(duì)象時(shí)調(diào)用構(gòu)造函數(shù),例如在主函數(shù)AA中聲明類classA{…}:在定義對(duì)象a時(shí),調(diào)用構(gòu)造函數(shù)。默認(rèn)構(gòu)造函數(shù)是無(wú)參數(shù)的。構(gòu)造函數(shù)相當(dāng)于初始化對(duì)象a,這相當(dāng)于在C語(yǔ)言中初始化inta=3的a的值。因?yàn)椴荒苤苯訉⒅蒂x給類中私有的類成員,所以依賴構(gòu)造函數(shù)。但是,您應(yīng)該注意參數(shù)化構(gòu)造和無(wú)參數(shù)構(gòu)造。默認(rèn)值是無(wú)參數(shù)的。例如,AA(1,3)是錯(cuò)誤的,除非您在類中使用參數(shù)編寫(xiě)構(gòu)造函數(shù)。當(dāng)函數(shù)調(diào)用結(jié)束時(shí),析構(gòu)函數(shù)將被自動(dòng)調(diào)用,例如當(dāng)您在clsaaa{公共:添加()…},當(dāng)您AA;A.add()時(shí),您可以自動(dòng)調(diào)用解構(gòu)。。。}在調(diào)用a.add()之后,您會(huì)發(fā)現(xiàn)在析構(gòu)函數(shù)中編寫(xiě)的內(nèi)容會(huì)被自動(dòng)調(diào)用。析構(gòu)函數(shù)的功能是釋放對(duì)象占用的資源。默認(rèn)的析構(gòu)函數(shù)不打印任何內(nèi)容,因此您不會(huì)直接看到何時(shí)執(zhí)行析構(gòu)函數(shù)。當(dāng)您將打印語(yǔ)言添加到析構(gòu)函數(shù)時(shí),您將看到它。希望能對(duì)您有所幫助
生成對(duì)象時(shí)會(huì)調(diào)用構(gòu)造函數(shù)。可以定義或新分配。調(diào)用哪個(gè)構(gòu)造函數(shù)取決于構(gòu)造參數(shù)。如果構(gòu)造參數(shù)是同類的另一個(gè)對(duì)象,則它是復(fù)制構(gòu)造函數(shù)。如果沒(méi)有參數(shù),則是無(wú)參數(shù)構(gòu)造或默認(rèn)構(gòu)造,在對(duì)象生命周期結(jié)束時(shí)(即對(duì)象釋放時(shí))調(diào)用析構(gòu)函數(shù)。當(dāng)delete調(diào)用本地變量時(shí),從新對(duì)象中出來(lái)的對(duì)象將在退出域時(shí)調(diào)用該本地變量。當(dāng)程序退出時(shí)調(diào)用全局變量和靜態(tài)局部變量時(shí),在主函數(shù)之前調(diào)用全局對(duì)象的構(gòu)造函數(shù)。在main函數(shù)之后調(diào)用析構(gòu)函數(shù)。本地堆棧對(duì)象在定義時(shí)調(diào)用構(gòu)造函數(shù),在超出可見(jiàn)范圍時(shí)調(diào)用析構(gòu)函數(shù)。堆對(duì)象在新建時(shí)調(diào)用構(gòu)造函數(shù),在刪除時(shí)調(diào)用析構(gòu)函數(shù)。全局靜態(tài)對(duì)象與全局對(duì)象相同。當(dāng)本地靜態(tài)對(duì)象在定義時(shí)被調(diào)用時(shí),它們?cè)谥骱瘮?shù)之后被調(diào)用。