Затмение: вы можете отформатировать код при сохранении?

У вас есть что-то вроде

class B
{
   A * a;
}
B * b = new B;
b->a = new A;

. Если вы затем вызываете delete b;, ничего не происходит с a, и у вас есть утечка памяти. Попытка запомнить delete b->a; не является хорошим решением, но есть пара других.

B::~B() {delete a;}

Это деструктор для B, который удалит a. (Если a равно 0, это удаление ничего не делает. Если a не является 0, но не указывает на память от нового, вы получаете повреждение кучи.)

auto_ptr<A> a;
...
b->a.reset(new A);

Таким образом, у вас нет как указатель, а скорее auto_ptr & lt;> (shared_ptr & lt;> будет делать также или другие интеллектуальные указатели), и он автоматически удаляется, когда b.

Любой из этих способов работает хорошо, и я Вы использовали оба.

119
задан M. A. Kishawy 11 April 2017 в 14:30
поделиться

3 ответа

Под Предпочтениями , выберите Java -> , Редактор -> Сохраняют Действия . Проверьте , Выполняют выбранные действия с сохранением и устанавливают флажок Format source code .

Это может или не может быть доступно в предыдущих версиях Eclipse. Я знаю, что это работает в:

Version: 3.3.3.r33x_r20080129-_19UEl7Ezk_gXF1kouft<br>
Build id: M20080221-1800
197
ответ дан M. A. Kishawy 11 April 2017 в 14:30
поделиться

Я настоятельно рекомендую проверить Ваш формат затмения xml дескриптор в управление исходным кодом. Тем путем все члены команды могут использовать его, и Вы не получаете туда и сюда переформатировавшие сражения.

15
ответ дан 24 November 2019 в 01:38
поделиться

Если вы обнаружите, что у вас нет предпочтения Сохранить действия в Java -> Редактор , это может быть потому что вы используете старую версию Eclipse. В этом случае вы можете установить плагин Format on save из здесь .

Затем в Preferences выберите Java -> Format on сохранить . Выберите параметр Формат выполнения в разделе Выберите действие форматирования кода

2
ответ дан 24 November 2019 в 01:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: