Suppose you need to prevent the derivation of a class?like in the final classes of Java. Simply make the constructor of the class private. Here’s an example:
class final{private: final(){} ;public: static final* CreateInstance() { return (new final()) ; }} ;/* UNCOMMENTing will give error because we've declared constructor of final class as privateclass derived : public final{public: derived() { }} ;*/void main(){ final *f ; f = final::CreateInstance() ;}