指標使用中的根本問題:
1. 記憶體洩漏;
2. 野指標(指標指向已經被無效的記憶體上);
尤其是當多個指標指向同乙個記憶體區域的時候, 哪個指標來負責析構, 是最頭疼的事情了.
針對這種情況, 應該先引出指標的所有權問題:
指標指向的記憶體誰來釋放, 誰就是擁有所有權.
分三類情況:
1. 乙個指標有清晰的所有權;
2. 幾個指標共有所有權;
3. 一些指標只有引用權;
共享所有權指標的需求:
vishareptr m_sp1 = new viobj;
m_sp2 = m_sp1;
m_sp1 = null;//! 因為有其他人享有這個所有權, 所以不能執行析構
m_sp2;//! 還是有效的
m_sp2 = null;//! 執行析構
實現方式: 引用計數器
引用型指標
viownptr m_op = new viobj;//! 所有權指標
virefptr m_rp = m_op;//! 引用指標
delete m_op;
assert(m_rp == null);//! 物件析構之後, 所有引用指標置空;
實現方式: 引用列表
tip:
指標命名:
1. _rp_ 引用指標
2. _op_ 所有權指標
3. _sp_ 共享指標
引用型指標的使用範圍:
**物件;
訊息物件;
持有指標狀態判斷;
[author: yisa 意帥]
新部落格需求
一.背景 之前的部落格是用的蘑菇部落格,微服務的,但是自己的雲伺服器配置是最低的那種,經常日誌檔案過大佔滿硬碟空間,所以後來用了,但是用了一段時間,我覺得對於我來說,功能不是很友好,首先沒有文章搜尋,其次是瀏覽文章需要翻頁,我已經習慣了一直往下滑,到底後再載入.所以我就想重新搭建乙個部落格.二.目前...
新挑戰 新架構下的資料保護新需求
談到資料保護,人們更多的想到it系統宕機 資料丟失等等,然後通過備份軟體 災備系統 恢復軟體 雙活等系統的歸檔 備份 快照 複製 連續可用等功能來實現資料保護。但是今天一方面網際網路快速發展,一方面it基礎設施也在發生很大的公升級。網際網路的發展讓企業的資料安全更多的面臨網路攻等新的挑戰,而it架構...
如何面對新需求
在工作中,老大突然給你了乙個需求 bug也算在內 這時應該三思而後行,將問題想明白了在動手,否則後患無窮。這些道理非常簡單,每個碼農都知曉,但是在真正的工作中卻往往容易被忽略 理解需求 需求不應該僅僅是按部就班的翻譯成 而是要真正的理解需求,對於資料庫系統來說,要理解每個語意的合理性,以及在我們當前...