こんにちは、株式会社CFlatです。 C++11ではfinalキーワードが導入され、継承できないクラスを作ることが容易になりました。 例えば次のようなHogeクラスを継承しようとすると、エラーが発生します。 class Hoge final {}; クラス自体は継承可能だけれども、メンバー関数のみ継承不能とすることもできます。 class Piyo { public: virtual void method() final {} }; ただしC++03の範囲でも、工夫すれば継承不能なクラスを作ることはできなくはありませんでした……つまり、デフォルトコンストラクタを含めて全てのコンストラクタをprivateとすることで、派生クラスが基底クラスを構築できないようにするわけです(派生クラスの宣言だけなら通っても、インスタンス化する時にエラーとなります)。 もちろん、そのままでは継承せずに使うこと