https://stackoverflow.com/questions/2446142/how-to-differentiate-two-constructors-with-the-same-parameters
http://tcpschool.com/cpp/cpp_conDestructor_defaultConstructor