Возможный дубликат:
Сколько работы должно выполняться в конструкторе?
Я борюсь с некоторыми советами, которые у меня есть в голове, но для которых я не могу вспомнить рассуждения.
Кажется, я кое-что вспомнил, прочитав несколько советов (не могу вспомнить источник), что конструкторы С++ не должны выполнять настоящую работу. Скорее, они должны инициализировать только переменные. Далее пояснялось, что настоящая работа должна выполняться каким-то методом init(), который будет вызываться отдельно после создания экземпляра.
Ситуация у меня есть класс, который представляет собой аппаратное устройство. Для меня логичный смысл, чтобы конструктор вызывал подпрограммы, которые запрашивали устройство, чтобы создать переменные экземпляра, описывающие устройство. Другими словами, когда новый экземпляр объекта создается, разработчик получает объект, который готов к использованию, не требуется отдельный вызов объекта- > init().
Есть ли веская причина, почему конструкторы не должны выполнять настоящую работу? Очевидно, что это может замедлить время размещения, но это не будет отличаться при вызове отдельного метода сразу после выделения.
Просто пытаюсь выяснить, какие ошибки, которые я сейчас не рассматриваю, которые могли бы привести к такому совету.