最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C/C++編程筆記:C++單例模式詳細(xì)解析!從零開始學(xué)懂單例

2020-11-16 21:54 作者:C語言編程__Plus  | 我要投稿

單例模式定義

該類負(fù)責(zé)創(chuàng)建自己的對(duì)象,同時(shí)確保只有單個(gè)對(duì)象被創(chuàng)建。這個(gè)類提供了一種訪問其唯一的對(duì)象的方式,可以直接訪問,不需要實(shí)例化該類的對(duì)象。

在C++中,我個(gè)人的理解是,不需要自己new類指針,這樣一方面也方便程序員自己管理內(nèi)存,另一方面可以節(jié)省系統(tǒng)指針,減少占用內(nèi)存資源。


單例模式的實(shí)現(xiàn)要求

簡(jiǎn)單的來說,就是一個(gè)類要有唯一的單例,而且這個(gè)單例類能夠被其他對(duì)象所調(diào)用,不能用,那就沒意義了嘛 。

單例模式的代碼實(shí)現(xiàn)

前面兩個(gè)定義和實(shí)現(xiàn)要求理解之后,讓我們來看看單例模式是如何在C++中被巧妙地利用。

首先看一下使用單例模式的類

頭文件單例類的定義如下:


其中定義了單例成員指針m_Instance或獲取單例指針的方式

還定義了類CGarbage 用于釋放單例指針

接下來是實(shí)現(xiàn)cpp文件


這里面很容易看出來?getSingleton()函數(shù)用來new單例指針 判斷是否單例指針存在,這樣的好處 是可以保證整個(gè)類的全局指針 只占用一個(gè)內(nèi)存地址,無需每次都要new

接下來看一下測(cè)試代碼


運(yùn)行程序 :


可以明顯的看出,只產(chǎn)生了一個(gè)實(shí)例指針,這樣很方便我們?nèi)ス芾韮?nèi)存,也不占用內(nèi)存資源

接下來看一下不用單例模式的常規(guī)類會(huì)有什么不一樣

頭文件


定義了一個(gè)人的類 里面一個(gè)walk方法

實(shí)現(xiàn)


很簡(jiǎn)單 和上面一樣

接下來看一下測(cè)試代碼


測(cè)試代碼也很簡(jiǎn)單

new了兩個(gè)指針 然后執(zhí)行walk函數(shù) 最后看一下地址 然后釋放內(nèi)存

看一下運(yùn)行結(jié)果:


可以明顯看出 這個(gè)產(chǎn)生了兩個(gè)內(nèi)存,如果在大型項(xiàng)目當(dāng)中 需要在不同的文件當(dāng)中引用類,很明顯,對(duì)于程序本身占用內(nèi)存 是個(gè)負(fù)擔(dān),而且 很容易造成內(nèi)存泄漏的現(xiàn)象,所以單例模式的優(yōu)勢(shì)也顯而易見,可以盡可能占用少的內(nèi)存,并且及其易于管理內(nèi)存,希望借著兩個(gè)例子,能夠給大家?guī)硪稽c(diǎn)啟發(fā)。

另外如果你想更好的提升你的編程能力,學(xué)好C語言C++編程!彎道超車,快人一步!

C語言C++編程學(xué)習(xí)交流圈子,【點(diǎn)擊進(jìn)入】微信公眾號(hào):C語言編程學(xué)習(xí)基地

分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)

另外,UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~

編程學(xué)習(xí)書籍分享:


編程學(xué)習(xí)視頻分享:



C/C++編程筆記:C++單例模式詳細(xì)解析!從零開始學(xué)懂單例的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
额敏县| 区。| 博客| 容城县| 芷江| 平乡县| 德钦县| 醴陵市| 十堰市| 麻阳| 长葛市| 尼玛县| 娱乐| 巨野县| 裕民县| 敦煌市| 光山县| 巢湖市| 南皮县| 汝州市| 昆明市| 肃南| 修文县| 和林格尔县| 杨浦区| 襄城县| 桃园市| 延川县| 江津市| 上饶市| 佳木斯市| 闽侯县| 象州县| 定兴县| 平湖市| 西乌珠穆沁旗| 宜川县| 六盘水市| 五大连池市| 株洲县| 班玛县|