iostream
(variables et fonctions d'instance) = membre
(variables et fonctions de classe) = non-membre --> static
Dans le fichier .hpp.
class Sample {
public:
Sample(void);
~Sample(void);
static int getNbInst(void);
private:
static int _nbInst;
};
Ajouter ensuite les méthodes dans le fichier .cpp
Ici on comptabilise chaque instance crée ou detruite.
Ne pas oublier d'initialiser l'attribut non-membre !
int Sample::_nbInst = 0;
Sample::Sample(void)
{
std::cout << "Constructor called" << std::endl;
Sample::_nbInst += 1;
return;
}
Sample::~Sample(void)
{
std::cout << "Destructor called" << std::endl;
Sample::_nbInst -= 1;
return;
}
Ici il n'y a pas de paramètre d'instance passé et donc il n'y aura jamais de this-> !
int Sample::getNbInst(void)
{
return Sample::_nbInst;
}
Dans le main.cpp
std::cout << "Number of instances = " << Sample::getNbInst() << std::endl;