... это освободит память, в которой был сохранен текст?
blockquote>No.
Или мне было бы лучше просто объявить это как указатель ...
blockquote>Нет, вам лучше объявить строку в области, в которой она необходима, и позволить вызвать ее деструктор. Если вы должны освободить память в области, которая все еще существует, вы можете сделать это:
std::string().swap(the_string_to_clear);
Пара незначительных моментов, которые вряд ли могут быть причиной того, почему вы увидели это в данном случае.
Что касается "на случай, если позже будут добавлены другие конструкторы, и вы забудете, что у вас нет конструктора по умолчанию" - это может быть причиной, я полагаю. Но если будет добавлен конструктор не по умолчанию, то любой код, использующий конструктор по умолчанию, не будет компилироваться, поэтому тот, кто добавит новый конструктор, должен будет добавить определение и для конструктора по умолчанию.
С другой стороны, я не могу придумать никакого особого вреда в определении пустого ctor (хотя теперь, когда я это напечатал, у меня появилось чувство, что кто-то может указать на какой-нибудь уголок C++, где это может укусить вас).
Он не играет никакой роли и может быть безопасно удален.
Вот что говорит спецификация языка Java:
Если класс не содержит конструкторов, то по умолчанию они не объявляются. объявления конструктора, то по умолчанию конструктор по умолчанию, который не принимает никаких параметров автоматически предоставляется:
- Если объявляемый класс является первичным классом Object, тогда конструктор по умолчанию имеет пустое тело.
- В противном случае, конструктор по умолчанию не принимает никаких параметров и просто вызывает конструктор суперкласса без аргументов.
Поэтому конструктор по умолчанию будет создан в любом случае. Нет смысла писать его, если это не нужно.
IMO вы должны делать это только если хотите изменить уровень видимости вашего конструктора, т.е. сделать его приватным или защищенным пакетом
Хотя явное добавление конструктора на техническом уровне ничего не дает, для этого есть потенциальные причины. Например, если класс создается через отражение, вы можете поместить некоторую документацию в конструктор по умолчанию, чтобы указать, что он требуется, даже если добавление нового конструктора не вызовет ошибки компиляции.
Другая причина заключается в том, что некоторые стандарты кодирования предпочитают его, чтобы явно указать, что вы думали о том, какой конструктор должен иметь этот класс.
Потому что вы верите во второе предложение дзен питона :
Явное лучше, чем неявное.
Если все, что вы делаете, это удаляете предмет с определенным идентификатором, GET должен соответствовать вашим целям: http://www.diffen.com/difference/Get_vs_Post
Просто убедитесь, что вы обрабатываете случай, когда кто-то пытается удалить то, что уже удалено
-121--5085950-Вот основной пример.
Смотрите: http://www.thinkjson.com/group-permissions-in-django/
Прежде всего, скажите, что у вас есть модель под названием Report.
class Report(models.Model):
name = models.CharField(max_length=100)
contents = models.TextField(blank=True)
authorized_groups = models.ManyToManyField('ReportGroup', null=True, blank=True, related_name='report_groups')
def __str__(self):
return self.name
Вы можете создать промежуточную модель для пользовательской модели для обработки групповых разрешений:
class ReportGroup(models.Model):
name = models.CharField(max_length=100)
authorized_users = models.ManyToManyField(User, null=True, blank=True, related_name='report_users')
def __str__(self):
return self.name
Теперь, когда вы редактируете отчет в Django admin, вы можете назначить групповые разрешения для отчета. Эти группы можно администрировать как группы отчетов в Django admin, позволяя выбрать в одном кадре, кто принадлежит к группе.
-121--5085976-Исправьте меня, если я не прав (я давно не работал на Java), но разве это не препятствует вызову родительского конструктора? В этом случае рассуждения, очевидно, что родитель собирается сделать что-то автоматически, что вы не хотите произойти в этом классе.
Меня учили, что общедоступный конструктор по умолчанию требовался спецификацией java bean-компонента .. Страница википедии http: / /en.wikipedia.org/wiki/Java_Bean также перечисляет это как требование.
С другой стороны, я просмотрел сайт Sun / Oracle и не нашел упоминания о нем. См. http://java.sun.com/developer/onlineTraining/Beans/Beans1/simple-definition.html