1

約50のクラスを持つソフトウェアを書いているとします。クラスを 2 つの部分に分けることができます。2. クラスは、プログラムの最後まで 1 つのインスタンスを作成するだけです。

したがって、MainProgram クラスがあり、ここですべてを行うとします。次に、main.cpp でインスタンスを作成し、プログラムを実行します。ここで、一度だけ作成されたインスタンス (オプション 2) を他のクラスに渡す必要があります。これを実装するアイデアはありますか? またできないnewから。私は古いインスタンスで作業するだけです。たとえばSocketNetwork Class、そのコンストラクターがポート番号を取得し、それにアクセスすることを書きbindました。だから私はrebind再びできず、指定されたポート番号のリソースにアクセスすることを余儀なくされました。

4

2 に答える 2

1

singleton patternを探しているようです。

次のようになります。

class A
{
public:
   static A& getInstance()
   {
      static A a;
      return a;
   }
private:
   A() {}
};

Aコンストラクターはプライベートであるため、メソッドを介して作成された単一のインスタンスしか取得できず、getInstance()どこでも呼び出すことができます。

`A::getInstance()`

は常に の同じインスタンスを返しますA

于 2012-08-20T21:46:07.353 に答える
0

シングルトーンの前に、私は使用しました:

class AudioCallbackData
{
public:
    AudioCallbackData();
    AudioMixer *audioMixer;
    AudioBuilder *AbRcv;
    NetworkSocket *socketAudio;
    NetworkSocket *socketCommand;
    NetworkSocket *socketSetting;
    NetworkSocket *socketStatus;
    NetworkSocket *socketData;
    MainCore *mainCorePtr;
    AudioCore *audioCorePtr;
    Device *devPtr;
    CircularBuffer *cBuffer;

};
extern AudioCallbackData  *audioCallbackDataPtr;// = ptr;

すべての属性はクラスのインスタンスを保持します。したがって、SingleTone の場合、インスタンスごとに、インスタンスごとにクラスを記述できますか?

于 2012-08-20T22:00:53.137 に答える