Since our reasons might not be immediately obvious to the user,
each private member needs a short sentence of explaination:
class Example {
public:
// constructor
explicit Example();
// destructor
~Example();
private:
// Copy constructor
// is declared private so interface cannot use it;
// not defined so implementation cannot use it:
explicit Example( Example const& original );
// Assignment operator
// is declared private so interface cannot use it;
// not defined so implementation cannot use it:
Example& operator=( Example const& original );
};//class Example