PCL之指標Ptr詳解
阿新 • • 發佈:2020-12-12
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>
並且一個指標物件可以由多個智慧指標共同指向。(希望多個指標要以和為貴,不要搞窩裡鬥。謝謝朋友們!)
智慧指標詳細請參考該部落格