1、唯一のスタック上に生成することができるて制限
プライベート作られたオペレータの新しいプロトタイプ
書式#include <iostreamの> クラスOnlyOnStack { パブリック: OnlyOnStack(){ std :: coutの << " CTOR!" << はstd ::てendl; } 〜OnlyOnStack(){ std :: coutの << " dctor!" << はstd ::てendl; } プライベート: 無効 * 演算子 新しい(のstd :: size_tのサイズ); 無効 *の演算子 の新しい(のstd :: size_tのサイズ、constのはstd :: nothrow_t&nothrow_value)noexcept。 無効 *の演算子 の新しい(のstd :: size_tのサイズ、無効 * PTR)noexcept。 無効 * オペレータ 新しい[](STD :: size_tのサイズ); 無効 *のオペレータ 新しい [](STD :: size_tのサイズ、constのはstd :: nothrow_t&nothrow_value)noexcept。 無効 * 演算子 新しい [](STD :: size_tのサイズ、無効 * PTR)noexcept。 }。 INT メイン(){ スタックOnlyOnStack; // OnlyOnStack * PS =新しいOnlyOnStack。 }
図2に示すように、オブジェクトはヒープのみを生成するように制限することができ、2つの方法があります
シングルモードを使用して、実施例2.1:ときに、新しいプライベートコンストラクタ、のgetInstance()は、シングルトンを取得します。
コンパイラが自動的に定義オブジェクトをスタック停止し、デストラクタプライベートクラスをすることにより、外部破壊に公共の機能が必要であることを2.2デストラクタ民間ので、