Exercise: Default Constructor (was: Arrays of Objects)

Description

Download and (try to) compile the following code:

#include "user.h"

int main()
{
    User users[10];  // does that work?
    return 0;
}

Does it work? (No)

C++, when arrays of objects (i.e. instances of classes) are created, the array members must be initialized ⟶ their constructors are called.

Solution: add a default constructor to class User

Dependencies

cluster_cxx03 C++ cluster_cxx03_data_encapsulation Data Encapsulation cluster_cxx03_standard_library_miscellanea The Standard Library: Miscellaneous Topics cluster_cxx03_functions_and_methods Functions and Methods cluster_cxx03_exercises_userdb Exercises: User Database cluster_c The C Programming Language cluster_c_introduction Introduction cxx03_introduction Introduction c_introduction_installation Installation cxx03_introduction->c_introduction_installation cxx03_data_encapsulation_ctor_default Default Constructor cxx03_data_encapsulation_ctor_custom Custom Constructor cxx03_data_encapsulation_ctor_default->cxx03_data_encapsulation_ctor_custom cxx03_data_encapsulation_classes_objects Classes and Objects cxx03_data_encapsulation_classes_objects->cxx03_introduction cxx03_data_encapsulation_c Object Oriented Programming In Good Ol’ C cxx03_data_encapsulation_classes_objects->cxx03_data_encapsulation_c cxx03_data_encapsulation_ctor_dtor More Constructors, Destructors cxx03_data_encapsulation_ctor_dtor->cxx03_data_encapsulation_ctor_default cxx03_data_encapsulation_ctor_dtor->cxx03_data_encapsulation_ctor_custom cxx03_data_encapsulation_ctor_custom->cxx03_data_encapsulation_classes_objects cxx03_data_encapsulation_c->cxx03_introduction cxx03_standard_library_miscellanea_string std::string cxx03_functions_and_methods_references References cxx03_functions_and_methods_this this cxx03_functions_and_methods_references->cxx03_functions_and_methods_this cxx03_functions_and_methods_const const cxx03_functions_and_methods_methods Methods cxx03_functions_and_methods_const->cxx03_functions_and_methods_methods cxx03_functions_and_methods_overloading Overloading cxx03_functions_and_methods_overloading->cxx03_data_encapsulation_classes_objects cxx03_functions_and_methods_methods->cxx03_functions_and_methods_overloading cxx03_functions_and_methods_this->cxx03_functions_and_methods_const cxx03_exercises_userdb_user_access_methods Exercise: Access Methods for Members cxx03_exercises_userdb_user_access_methods->cxx03_functions_and_methods_methods cxx03_exercises_userdb_user_simple_method Exercise: Simple Method (Users Age By n Years) cxx03_exercises_userdb_user_access_methods->cxx03_exercises_userdb_user_simple_method cxx03_exercises_userdb_user_ctor Exercise: Transform struct User Into A Class cxx03_exercises_userdb_user_ctor->cxx03_data_encapsulation_ctor_custom cxx03_exercises_userdb_user_ctor->cxx03_standard_library_miscellanea_string cxx03_exercises_userdb_user_simple_method->cxx03_functions_and_methods_methods cxx03_exercises_userdb_user_const_members Exercise: const Members cxx03_exercises_userdb_user_simple_method->cxx03_exercises_userdb_user_const_members cxx03_exercises_userdb_user_const Exercise: Use const cxx03_exercises_userdb_user_const->cxx03_functions_and_methods_references cxx03_exercises_userdb_user_const->cxx03_functions_and_methods_const cxx03_exercises_userdb_user_const->cxx03_exercises_userdb_user_access_methods cxx03_exercises_userdb_user_const_members->cxx03_data_encapsulation_ctor_dtor cxx03_exercises_userdb_user_const_members->cxx03_exercises_userdb_user_ctor