どのようにC ++オブジェクトを制限することは、ヒープまたはスタック上に作成されます

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デストラクタ民間ので、

おすすめ

転載: www.cnblogs.com/timeObjserver/p/12003511.html