Default constructor ensures that all member data is set to a default value (all constructors do this).
Once you define a custom constructor, the free default constructor is removed. You must redefine it if you want to be able to create objects using it.