13
静的変数を持つテンプレートクラスを使用している場合、変数をすべてのタイプのクラスで同じにする方法はありますかそれぞれ?静的メンバーを含むC++テンプレートクラス - クラスのすべてのタイプに同じ
現時点では私のコードは次のようである:
template <typename T> class templateClass{
public:
static int numberAlive;
templateClass(){ this->numberAlive++; }
~templateClass(){ this->numberAlive--; }
};
template <typename T> int templateClass<T>::numberAlive = 0;
メイン:
templateClass<int> t1;
templateClass<int> t2;
templateClass<bool> t3;
cout << "T1: " << t1.numberAlive << endl;
cout << "T2: " << t2.numberAlive << endl;
cout << "T3: " << t3.numberAlive << endl;
この出力:
T1: 2
T2: 2
T3: 1
望ましい行動があるよう:
T1: 3
T2: 3
T3: 3
私は、このクラスの増分と減分のいずれかのタイプが、それdoesntのは非常に論理的に見えるというグローバルなint型のいくつかの並べ替えでそれを行う、またはことができると思いオブジェクト指向
はあなたに私はこれを実装することができます誰にもありがとうございます。
これらのクラスは複数のスレッドでインスタンス化されますか?ポストインクリメント/デクリメントはスレッドセーフではありません。 –
@ ta.speot.is:スレッドセーフでない操作はありません。それがなぜここに関係するのかわからない。誰もスレッドに言及しなかった! –
ああ、ええ、これらはおそらく複数のスレッドで使用する必要があります、私はそれを調べなければなりません。 – jtedit