Si tiene una clase de plantilla con una variable estática, ¿hay alguna manera de hacer que la variable sea la misma en todos los tipos de clase, en lugar de ¿cada uno?Clase de plantilla C++ con miembros estáticos - Lo mismo para todos los tipos de la clase
Por el momento mi código es así:
template <typename T> class templateClass{
public:
static int numberAlive;
templateClass(){ this->numberAlive++; }
~templateClass(){ this->numberAlive--; }
};
template <typename T> int templateClass<T>::numberAlive = 0;
y principales:
templateClass<int> t1;
templateClass<int> t2;
templateClass<bool> t3;
cout << "T1: " << t1.numberAlive << endl;
cout << "T2: " << t2.numberAlive << endl;
cout << "T3: " << t3.numberAlive << endl;
Este salidas:
T1: 2
T2: 2
T3: 1
Donde como el comportamiento deseado es:
T1: 3
T2: 3
T3: 3
supongo que podría hacerlo con algún tipo de int global que cualquier tipo de estos incrementos de clase y decrementos, pero eso no parece muy lógico, o orientado a objetos
Gracias a cualquiera que me pueda ayudar a implementar esto.
¿Se crearán instancias de estas clases en varios hilos? Incremento/disminución de publicación no es seguro para subprocesos. –
@ ta.speot.is: ninguna operación es nativamente segura para subprocesos. No estoy seguro de por qué eso es relevante aquí; ¡Nadie mencionó los hilos! –
Oh, sí, estos probablemente necesitarán ser usados en múltiples hilos, tendré que investigar eso. – jtedit