C 強弱智慧型指標引起的執行緒安全問題

2021-09-25 09:14:58 字數 670 閱讀 8467

#include #include #include using namespace std;

class a

~a()

void funa() };

void hander01(a *p)

int main()

執行結果:

a在析構完成之後還可以呼叫a的方法,這個操作是極其不安全的乙個操作的,所以我們可以使用強弱智慧型指標來使得操作變得安全起來。

#include #include #include using namespace std;

class a

~a()

void funa() };

void handler01(weak_ptrq)

else

}int main()

std::this_thread::sleep_for(std::chrono::seconds(10));

}

執行結果:

智慧型指標 強弱智慧型指標

在平時編寫 的時候經常會用到new來開闢空間,而我們開闢出來的空間必須得手動去delete他,但是如果程式設計師忘記去手動釋放那邊會出現乙個麻煩的問題,記憶體洩漏!或者是一塊記憶體被多個函式同時使用時,如果其中乙個函式不知道還有其他人也在使用這塊記憶體而釋放掉的話同樣也會引起程式的崩潰。引起記憶體洩...

C 弱智能指標(weak ptr)

弱智能指標 一般結合強智慧型指標使用,它指向乙個 shared ptr 管理的物件.進行該物件的記憶體管理的是強引用的 shared ptr.weak ptr只是提供了對管理物件的乙個訪問手段 weak ptr 設計的目的是為配合 shared ptr 而引入的一種智慧型指標來協助 shared p...

C 弱智能指標weak ptr詳解

在最早有介紹關於智慧型指標的博文,但並未深入 弱智能指標的存在,這是簡單提到它是來配合強智慧型指標一起使用,且不可以單獨使用,所以對於弱智能指標它的作用就是解決強智慧型指標之間的相互引用而存在的。那,本文主要介紹關於弱智能指標weak ptr的一些東西 關於 weak ptr,weak ptr是伴隨...