(C ++) Удаляет ли новое объявление уже существующего объекта данные? - PullRequest
0 голосов
/ 10 апреля 2020

Я сейчас программирую кусок кода, который интенсивно использует структуры в c ++.

Я ничего не нашел об этом в Интернете, поэтому я задаю вопрос здесь: если я переопределю уже существующий объект, все данные этого объекта будут удалены?

Мой код выглядит примерно так:

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 l oop данные ранее использованного объекта или стирает их. (Нужно ли удалять ненужные данные в newStruct или нет? Это приложение new и delete)

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

если вы переопределите уже существующий объект в той же области видимости, вы получите ошибку. что касается вашего примера кода, каждая итерация представляет собой отдельную область видимости, то есть она имеет одинаковое имя переменной в двух разных функциях, они не связаны между собой.

0 голосов
/ 10 апреля 2020

Область действия переменной внутри l oop только для одной итерации. Во второй итерации все переменные создаются снова, поэтому ранее созданный объект будет уничтожен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...