Il existe deux façons d'instancier une classe en C++ :
// Instanciation sur la pile
maClasse objet;
delete objet;
.// Instanciation dynamique (sur le tas)
maClasse *objet = new maClasse();
Sur l'exemple suivant, objet1
est instancié sur la pile. Cette instance est locale à la fonction. La mémoire qu'il occupe sera libérée automatiquement à la fin de la fonction :
void onTheStack() {
// Instance locale à la fonction
maCLasse objet1;
// ...
} // L'instance est détruite à la fin de la fonction
Sur cet exemple, objet2
est instancié dynamiquement. L'instance de cet objet peut être utilisée en dehors de la fonction (à condition de récupérer son pointeur) :
maCLasse* onTheHeap() {
// Pointeur sur une instance créée dynamiquement
maClasse *objet2 = new maClasse();
// ...
// Retourne le pointeur pour une utilisation externe à la fonction
return object2;
}