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() .