constructor:
a special member function used to initialize objects. Each constructor should give each data member a well defined initial value.
synthesized default constructor:
the default constructor created (synthesized) by the compiler for classes that do not explicitly define any constructors. This constructor initializes the data member from their in-class initializers, if present; otherwise it default default initializes the data members.
constructor initializer list:
specifies initial values of the data members of a class. The members are initialized to the values specified in the initializer list before the body of the constructor executes. Class members that are not initialized in the initializer list are default initialized.
default constructor:
constructor that is used if no initializer is supplied (or say "default constructor is one that takes no argument.").
copy constructor:
constructor that initializes a new object as a copy of another object of the same type. The copy constructor is applied implicitly to pass objects to or from a function by value. If we do not provide the copy constructor, the compiler synthesizes one for us.
copy-assignment operator:
version of the assignment operator that takes an object of the same type as its type. Ordinarily, the copy-assignment operator has a parameter that is a reference to const and returns a reference to its object. The compiler synthesizes the copy-assignment operator if the class does not explicitly provide one.
destructor:
special member function that cleans up an object when the object goes out of scope or is deleted. The compiler automatically destroys each data member. Members of class type are destroyed by invoking their destructor; no work in done when destroying members of built-in or compound type. In particular, the object pointed to by a pointer member is not deleted by the destructor.
synthesized destructor:
version of the destructor created (synthesized) by the compiler for classes that do not explicitly define one. The synthesized destructor has an empty function body.