静的変数を持つテンプレートクラスがある場合、クラスごとではなく、クラスのすべてのタイプで変数を同じにする方法はありますか?
現時点では、私のコードは次のようになっています。
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
このクラスの任意のタイプがインクリメントおよびデクリメントする、ある種のグローバルintでそれを行うことができると思いますが、それはあまり論理的またはオブジェクト指向ではないようです
私がこれを実装するのを手伝ってくれる人に感謝します。