Attribution d'un indice unique par classe dans une boucle.
Bonjour.
Est il possible de n'incrémenter qu'une seule fois un attribut dans le constructeur d'une classe quand une instance de cette classe est dans une boucle.
Je voudrais attribuer un indice à chaque objet que je crée dans la boucle du main.cpp, mais comme l'instance est dans la boucle le constructeur se répète.
Est ce qu'il y a un moyen de donner un indice unique à chaque instance de classe ?
Exemple :
Main.cpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #include <iostream>
#include <SFML/Graphics.hpp>
#include "Objet.h"
using namespace std;
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML");
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
Objet obj1;
Objet obj2;
Objet obj3;
cout << obj1.getIndice() << " " << obj2.getIndice() << " " << obj3.getIndice() << endl;
window.display();
}
return 0;
} |
Objet.cpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include "Objet.h"
Objet::Objet()
{
compteur++;
indice = compteur;
}
int Objet::getIndice()
{
return indice;
}
int Objet::compteur = 0; |
Objet.h :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #ifndef OBJET_H
#define OBJET_H
class Objet
{
public:
Objet();
int getIndice();
private:
static int compteur;
int indice;
};
#endif // OBJET_H |