国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
岳普湖县| 龙口市| 东乌| 凭祥市| 蒲城县| 寿宁县| 贵溪市| 漳平市| 呼和浩特市| 宁河县| 大厂| 高青县| 大安市| 南汇区| 喀喇沁旗| 荃湾区| 都匀市| 永顺县| 浦县| 巴里| 甘德县| 璧山县| 宿松县| 特克斯县| 郁南县| 扎兰屯市| 淮北市| 景东| 灵宝市| 成安县| 新兴县| 府谷县| 利津县| 驻马店市| 丰原市| 上栗县| 错那县| 镇江市| 理塘县| 内丘县| 翁源县|