C++の基礎 - クラス
ナビゲーションに移動
検索に移動
概要
実体化の禁止
C++11以降では、デフォルトコンストラクタとデストラクタにdelete
キーワードを指定することにより、実体化を禁止することができる。
メンバにdelete
キーワードを指定する場合は、public
に記述することがセオリーである。
// C++11以降
class CSampleClass final
{
public:
CSampleClass() = delete;
~CSampleClass() = delete;
public:
static int Add(int x, int y)
{
return x + y;
}
};
Visual C++では、abstract
キーワードが使用できるため、abstract sealed
またはabstract final
を指定することにより、static
クラスを記述することができる。
ただし、その場合は、他のプラットフォームではそのまま移植できないことに注意が必要となる。
また、Visual C++では、コンパイルオプションに/permissive-
を付加することにより、独自拡張を無効化することもできる。