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;