cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 8 juil. 2003 à 18:06
Non, ce n'est pas possible directement mais ca doit être réalisable en créant une super-classe n'ayant qu'un constructeur et un destructeur. Dans le constructeur de cette classe, tu incrémentes ton compteur, dans le destructeur, tu le décrémentes.
Mais ca n'est intéressant que dans le cas d'une allocation dynamique des différents objets car dans ton exemple tu connais forcément le nombre d'instances car c'est toi qui les crées.
cs_Arkko
Messages postés192Date d'inscriptionmercredi 26 décembre 2001StatutMembreDernière intervention31 janvier 2007 8 juil. 2003 à 23:41
Oui je sais que je connais les instances de cette classe ... c'est parce que pour un petit moteur 3d dans un dll je connais pas nécésairrement combien d,instance l'autre crée
j'aurais voulu me servir de ca pour executer une fonction dans chacune des instances ...
ex:
class Scene{
void RenderMesh(void);
};
class Mesh{
void Render(void);
};
void Scene:RenderMesh(void)
{
//Apelle la fonction Render pour toute les mesh
}
int main (void)
{
cout << UneClass::NbInstances;
UneClass A;
cout << UneClass::NbInstances;
return 0;
}
chui pas sur de tt le code, mais teste le et dis moi. j'ai peut-etre oublié qqs éléments de sybntaxe, et peut-etre fait qqs confusions, mais a priori ca doit marcher. a priori pour eviter des conneries, met plutot ta statique en private, et une fonction accesseur en public (fonction static aussi). ca devrait marcher. verifie et dis moi (si cest pas trop tard, paske je vois ke le message est vieux, chui tombé dessus par hasard...tres tres vieux, maissi tavais tjs pas trouvé, ca peut servir, et ca peut servir a dautres personnes