Несколько причин, по которым важно избегать неявных конструкторов по умолчанию в современных проектах:
- Неопределённое поведение кода. 1 Если не инициализировать члены класса, то вызов конструктора создаст мусорное значение. 2
- Проблемы с производительностью. 3 Например, при работе с массивами неявные конструкторы по умолчанию могут приводить к падению производительности, так как происходит инициализация всех элементов массива значениями по умолчанию. 3
- Невозможность предоставить внятный конструктор по умолчанию. 1 Если в классе есть компоненты, которые не поддаются инициализации по умолчанию, компилятор определит неявно объявленный конструктор по умолчанию как удалённый. 1
Чтобы избежать этих проблем, рекомендуется писать собственные конструкторы и инициализировать члены класса в их определении. 12