當前位置:首頁 > 公眾號精選 > wenzi嵌入式軟件
[導讀]前言在上一則教程中,敘述了當處于多線程環(huán)境下時,智能指針所指向的引用計數(shù)可能會因為此導致引用計數(shù)出問題,因此,引入了原子操作的相關概念,換句話說,這種操作也被稱之為是輕量級指針,那對于這種輕量型指針又會存在什么問題呢?本節(jié)內(nèi)容將著重敘述這個問題。另外需要注意的是,關于最近幾次的內(nèi)...

前言

在上一則教程中,敘述了當處于多線程環(huán)境下時,智能指針所指向的引用計數(shù)可能會因為此導致引用計數(shù)出問題,因此,引入了原子操作的相關概念,換句話說,這種操作也被稱之為是輕量級指針,那對于這種輕量型指針又會存在什么問題呢?本節(jié)內(nèi)容將著重敘述這個問題。另外需要注意的是,關于最近幾次的內(nèi)容互相之間都是息息相關的,需要結合上下文進行理解,同時,因為涉及到的代碼比較多,如果哪里沒有說明白的地方,需要下載對應的源代碼進行對照分析。好了,接下來,進入本次內(nèi)容的分享。

強指針

在說明強指針這個概念之前,我們先從代碼的角度慢慢分析,首先,假設,我們現(xiàn)在有如下兩個智能指針:

image-20210313102009432
如上圖所示,A 指針指向了 B,B 指針指向了 A,這樣會導致什么后果呢,我們看如下所示的代碼,在上一節(jié)輕量級指針的基礎上,我們構建這樣的?Person類代碼:

class?Person?:?public?LightRefBase
{
private:
????sp?father;
????sp?son;

public:
????Person()
????{
????????cout?<"Person()"?<endl;
????}

????~Person()
????{
????????cout?<"~Person()"?<endl;
????}

????void?setFather(sp?
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉
關閉