shouldNotImplement() functions now private

Virtual member functions that a class reimplements to call shouldNotImplement() have been made private so that the compiler can give an error message if a client program attempts to apply the function to an instance of the class.