In some rare cases, it is useful to disallow further derivation of a class. Classes that implement system API or sensitive security management are good examples for that. Declaring the constructor as private prohibits any further derivation of that class.
class Firewall { public: bool isAdressValid( const IP_address& ip);private: Firewall() {}//private constructor disables further derivation from this class};
If you’re familiar with Java, it has the same effect as declaring a class as final.