A public member is accessible from outside a class. A
private member can only be accessed within the class.
A constructor function is called automatically whenever we instantiate
(create) an object of that class and can be used to inialise the object. A
destructor is called automatically whenever the scope of the object
terminates (ie at the end of the program)
A constructor always has the same name as the class
A destructor has the same name as the class but prefixed with a ~ (tilde)