簡體   English   中英

(C++) 已經存在的 object 的新聲明是否會擦除數據?

[英](C++) Does a new declaration of an already existing object erase data?

我目前正在編寫一段代碼,該代碼大量使用 c++ 中的結構。

我在網上一無所獲,所以我在這里問一個問題:如果我重新定義一個已經存在的 object,這個 object 的所有數據是否都被刪除了?

我的代碼看起來像這樣:

struct someStruct{
int someInt = 0; //some other data here
}

int main(){
   while(someCondition){
      someStruct newStruct;
      //do stuff with Struct, like:
      newStruct.someInt=1;
      //use newStruct somewhere else
   }
}

我的問題是,while 循環的第二次運行中的新聲明是保留以前使用的 object 的數據還是刪除它。 (我是否必須刪除 newStruct 中不需要的數據?這是 new 和 delete 的應用程序)

提前致謝!

循環內變量的 Scope 僅用於一次迭代。 在第二次迭代中再次創建所有變量,因此之前創建的 object 將被銷毀。

如果你在同一個 scope 中重新定義一個已經存在的 object,你會得到一個錯誤。 至於您的代碼示例,每次迭代都是不同的 scope,因此它與在兩個不同的函數上具有相同的變量名相同,它們不相關。

暫無
暫無

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

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