Чтобы сделать псевдокод что-то в этом зависит от конкретного языка ДАВАЙТЕ вдоль линий:Инстанцирования в петле - примитивы и объекты
for(int i=0;i<=N;i++){
double d=0;
userDefinedObject o=new userDefinedObject();
//effectively do something useful
o.destroy();
}
Теперь это может попасть в более глубокие детали между Java/C++/Python и т.д., но:
1 - Делает это с примитивами неправильно или просто отвратительно/overkill (d может быть определено выше и при необходимости установить на каждую итерацию на 0).
2 - Выполняет ли это с объектом, в действительности неправильным? Теперь я знаю, что Java позаботится о памяти, но для C++ предположим, что у нас есть правильный деструктор, который мы называем.
Теперь - вопрос довольно краткий - это неправильно или просто вопрос вкуса?
спасибо.
Это очень зависит от языка, и Я не уверен, какая часть вашего вопроса - это «это» в «выполнении этого с помощью примитивов». Если вы говорите об объявлении его внутри цикла вместо внешнего, это хорошо. Если вы хотите, чтобы каждая итерация начиналась с 'd', свежей инициализацией до 0, объявление ее внутри цикла - лучший способ сделать это. Это не повлияет на производительность. – user2357112
Для второй части вам не нужно явно обращаться к деструктору объекта в C++, Java, Python или большинстве популярных языков. (В C вам нужно будет явно уничтожить его.) На языке GC'd GC уничтожит объект для вас. В C++ вы должны объявить его в стеке или обработать его через 'std :: unique_ptr', а C++ вызовет деструктор для вас. – user2357112
«Это» - это инстанцирование внутри цикла, как предполагает название вопроса. Спасибо, что указали, что если это иначе не ясно. –