Несколько причин, по которым важно избегать неявных конструкторов по умолчанию в современных проектах:
- Неопределённое поведение кода. habr.com Если не инициализировать члены класса, то вызов конструктора создаст мусорное значение. learn.microsoft.com
- Проблемы с производительностью. www.rsdn.org Например, при работе с массивами неявные конструкторы по умолчанию могут приводить к падению производительности, так как происходит инициализация всех элементов массива значениями по умолчанию. www.rsdn.org
- Невозможность предоставить внятный конструктор по умолчанию. habr.com Если в классе есть компоненты, которые не поддаются инициализации по умолчанию, компилятор определит неявно объявленный конструктор по умолчанию как удалённый. habr.com
Чтобы избежать этих проблем, рекомендуется писать собственные конструкторы и инициализировать члены класса в их определении. habr.com learn.microsoft.com