1. 程式人生 > 其它 >PCL之指標Ptr詳解

PCL之指標Ptr詳解

技術標籤:PCL成長之路c++指標記憶體洩漏

PCL指標詳解

本小白初次接觸PCL有些疑問:通過指標建立點雲物件時只看到建立部分,而沒有指標對應的delete部分,例如:

 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);

查詢原始碼發現這裡的Ptr其實是C++中的智慧指標,所以我們只看到過cloud的建立部分而通常沒有cloud的delete部分。C++中智慧指標寫法:

shared_ptr<T>  myptr (new T); 

這裡的T是資料型別,這與PCL中寫法後半部分一致,其實前半部分本質上也是一樣的,只不過PCL使using起了別名。

在這裡插入圖片描述
官網連結

接下來對C++智慧指標作簡短介紹:
與普通指標相比,智慧指標最大的不同是不用考慮只針對性的釋放,系統再指標物件消亡時自動進行delete操作,這極大地簡化了指標地使用。使用時只需包含相關標頭檔案即可。

#include<memory>

並且一個指標物件可以由多個智慧指標共同指向。(希望多個指標要以和為貴,不要搞窩裡鬥。謝謝朋友們!)
智慧指標詳細請參考該部落格