@Jos You don't have to create a default constructor, if you don't want one. But if you do want one, you'll have to provide it yourself (or make it = default ).
Is default constructor necessary?
Compiler defined default constructor is required to do certain initialization of class internals. It will not touch the data members or plain old data types (aggregates like an array, structures, etc…). However, the compiler generates code for default constructor based on the situation.
Do you need a default constructor C ++?
A default constructor is a constructor that either has no parameters, or if it has parameters, all the parameters have default values. If no user-defined constructor exists for a class A and one is needed, the compiler implicitly declares a default parameterless constructor A::A() .