Overloaded Members
Overloaded functions and overloaded operators are
inherited in the same manner as any other member
function defined within the base class.
If a derived class has the same named function or operator
as in the base class, then the base class overloaded
function or overloaded operator is hidden even if the
signatures differ.
However, the constructor, destructor, copy constructor,
assignment operator, address-of operator, and comma
operator are not overloaded.  These base class functions
and overloaded operators are hidden and are not directly
accessible within the derived class or through an object of
the derived class.