簡體   English   中英

C ++刪除函數中的局部變量

[英]C++ deleting local variables in function

我有在類A上工作的函數。類A在構造函數中分配一些內存,並在析構函數A ::〜A()中釋放它。

現在,如果。

A someFunc()
{
//This is just to illustrate that it is possible for that variable to be overwritten few times before returning.

A locA;

for(some condition)
{
    //Something something
    A forA(i);
    //Something.
    if(end) locA = forAj;
}

return locA;
}

這個好嗎? 每次在該for循環中再次創建該類的析構函數時,都會對其進行調用嗎?

每次在該for循環中再次創建該類的析構函數時,都會對其進行調用嗎?

是的,變量具有自動存儲功能,因此每當其中一個變量超出范圍時,都會調用A的析構函數。

只要您的班級表現良好,就應該適當處理A分配的內存。 請注意,這意味着在您的情況下, A還應具有合適的副本構造函數和副本賦值運算符,以便表現良好。

有關最后一點的更多信息,請參見三法則

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM