add information about avoiding hinding inherited names.
add information about differentiate between inheritance of interface and
inheritance of implementation
add information about considering alternatives to virtual functions
add information about never redefine an inherited non-virtual function.
add information about never redefine a function's inherited default
parameter value