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