内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

c++控制對(duì)象創(chuàng)建方式和創(chuàng)建數(shù)量的方法-創(chuàng)新互聯(lián)

小編給大家分享一下c++控制對(duì)象創(chuàng)建方式和創(chuàng)建數(shù)量的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、成都網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營(yíng)銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。

我們知道,C++將內(nèi)存劃分為三個(gè)邏輯區(qū)域:堆、棧和靜態(tài)存儲(chǔ)區(qū)。既然如此,我稱位于它們之中的對(duì)象分別為堆對(duì)象,棧對(duì)象以及靜態(tài)對(duì)象。通常情況下,對(duì)象創(chuàng)建在堆上還是在棧上,創(chuàng)建多少個(gè),這都是沒有限制的。但是有時(shí)會(huì)遇到一些特殊需求。

1.禁止創(chuàng)建棧對(duì)象

禁止創(chuàng)建棧對(duì)象,意味著只能在堆上創(chuàng)建對(duì)象。創(chuàng)建棧對(duì)象時(shí)會(huì)移動(dòng)棧頂指針以“挪出”適當(dāng)大小的空間,然后在這個(gè)空間上直接調(diào)用類的構(gòu)造函數(shù)以形成一個(gè)棧對(duì)象。而當(dāng)棧對(duì)象生命周期結(jié)束,如棧對(duì)象所在函數(shù)返回時(shí),會(huì)調(diào)用其析構(gòu)函數(shù)釋放這個(gè)對(duì)象,然后再調(diào)整棧頂指針收回那塊棧內(nèi)存。在這個(gè)過程中是不需要operator new/delete操作的,所以將operator new/delete設(shè)置為private不能達(dá)到目的。

可以將構(gòu)造函數(shù)或析構(gòu)函數(shù)設(shè)為私有的,這樣系統(tǒng)就不能調(diào)用構(gòu)造/析構(gòu)函數(shù)了,當(dāng)然就不能在棧中生成對(duì)象了。這樣的確可以,但有一點(diǎn)需要注意,那就是如果我們將構(gòu)造函數(shù)設(shè)置為私有,那么我們也就不能用new來直接產(chǎn)生堆對(duì)象了,因?yàn)閚ew在為對(duì)象分配空間后也會(huì)調(diào)用它的構(gòu)造函數(shù)。所以,如果將構(gòu)造函數(shù)和析構(gòu)函數(shù)都聲明為private會(huì)帶來較大的副作用,最好的方法是將析構(gòu)函數(shù)聲明為private,而構(gòu)造函數(shù)保持為public。

再進(jìn)一步,將析構(gòu)函數(shù)設(shè)為private除了會(huì)限制棧對(duì)象生成外,還有其它影響嗎?是的,這還會(huì)限制繼承。如果一個(gè)類不打算作為基類,通常采用的方案就是將其析構(gòu)函數(shù)聲明為private。為了限制棧對(duì)象,卻不限制繼承,我們可以將析構(gòu)函數(shù)聲明為protected,這樣就兩全其美了。如下代碼所示:

class NoStackObject{ 
protected: 
 ~NoStackObject(){} 
public: 
 void destroy(){ 
  delete this ;//調(diào)用保護(hù)析構(gòu)函數(shù) 
 } 
};

新聞名稱:c++控制對(duì)象創(chuàng)建方式和創(chuàng)建數(shù)量的方法-創(chuàng)新互聯(lián)
地址分享:http://m.rwnh.cn/article12/iidgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、微信公眾號(hào)靜態(tài)網(wǎng)站、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
临武县| 西林县| 巴彦淖尔市| 安平县| 洪湖市| 多伦县| 三穗县| 彰化县| 酉阳| 闽清县| 牡丹江市| 宜兴市| 湖北省| 尚义县| 吴江市| 平果县| 罗江县| 扎鲁特旗| 岑巩县| 安义县| 新余市| 大城县| 长岛县| 新龙县| 清流县| 崇左市| 潢川县| 思南县| 大同市| 宕昌县| 正阳县| 水富县| 金昌市| 庆安县| 无极县| 桐乡市| 纳雍县| 淮北市| 南丰县| 阿克陶县| 陆川县|