[英]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.