静的関数を使用して C でシングルトン モードを実装するには、次の手順を実行します。一意のインスタンスを格納するプライベート静的メンバー変数を宣言します。コンストラクターで静的メンバー変数を初期化します。 public static 関数を宣言して、クラスのインスタンスを取得します。
#静的関数を使用して C にシングルトン モードを実装する
はじめに
単一インスタンスpattern は、クラスのインスタンスが 1 つだけ存在することを保証する設計パターンです。 C では、静的関数を使用してシングルトン パターンを簡単に実装できます。 #構文静的関数は、オブジェクトではなくクラスに属する関数です。これらは
static キーワードを使用して宣言され、構文は次のとおりです。 <pre class='brush:cpp;toolbar:false;'>static return_type function_name(argument_list);</pre>
静的関数を使用してシングルトンを実装するにはモードの場合は、次の手順を実行してください:
クラスの唯一のインスタンスを保存するプライベート静的メンバー変数を宣言します:private: static ClassName* instance;
ClassName::ClassName() { if (instance == nullptr) { instance = this; } }
public: static ClassName* getInstance() { if (instance == nullptr) { instance = new ClassName(); } return instance; }
カウンタ値の追跡を担当する
Counter クラスがあると仮定します。 <pre class='brush:cpp;toolbar:false;'>class Counter {
private:
static Counter* instance;
int count;
public:
Counter();
static Counter* getInstance();
void increment();
int getCount();
};</pre>
以下は、
クラスの実装です。 <pre class='brush:cpp;toolbar:false;'>// 构造函数
Counter::Counter() : count(0) {}
// 获取类的实例
Counter* Counter::getInstance() {
if (instance == nullptr) {
instance = new Counter();
}
return instance;
}
// 增加计数器
void Counter::increment() {
++count;
}
// 获取计数器值
int Counter::getCount() {
return count;
}</pre>
getInstance()
関数を使用して、Counter
クラスのインスタンスを複数回取得できます。 <pre class='brush:cpp;toolbar:false;'>Counter* counter1 = Counter::getInstance();
counter1->increment();
Counter* counter2 = Counter::getInstance();
counter2->increment();
std::cout << counter1->getCount() << std::endl; // 输出:2</pre>
静的関数を使用してシングルトン パターンを実装することは、シンプルで効果的な手法です。これにより、クラスにシングルトン制約を適用して、常に同じインスタンスが返されるようにすることができます。
以上がC++ 静的関数を使用してシングルトン パターンを実装できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。