[英]c++ Destructor for Member Variables?
我正在閱讀這篇文章,我想澄清一下,我是否需要顯式刪除動態創建的對象的成員變量?
例如,我有一個帶有兩個成員變量的類,
class pointCloud
{
public:
pointCloud();
void addPoint(int);
point getPoint(int);
private:
int id;
std::vector<point> pointArray;
};
然后我在main中創建它的動態實例...
int main()
{
pointCloud* cloud = new pointCloud;
cloud->addPoint(8);
delete cloud;
}
我的理解是delete cloud;
被調用時,'id'和'pointArray'變量將自動從內存中刪除/釋放。 這個對嗎? 或者我是否需要編寫析構函數來顯式刪除這些成員變量?
或者我是否需要編寫析構函數來顯式刪除這些成員變量?
在你的情況下不需要寫,因為id
是一個原始類型, pointArray
是一個已經有析構函數的向量,它將釋放內存。
但是,如果你使用原始指針(通過new []分配緩沖區),那么在析構函數中你必須手動釋放內存(delete [])。
您不需要刪除成員變量 - 但是如果您創建了它,則需要delete
pointArray的內容(使用new
)
通常,無論您使用new
創建(某處), 還需要delete
(某處); 解決這個問題是你的問題所在。
這里:您創建了pointCloud,並將其刪除。 那很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.