nullptrEn C++ pour représenter une adresse nulle on peut utiliser nullptr (au lieu de NULL).
new et deletePour allouer et construire un objet manuellement (sur le tas) on peut utiliser new qui appelle implicitement un constructeur de l'objet? Pour libérer un objet construit avec new il faut appeler delete.
class A{
int* tab = nullptr;
int s = 0;
public:
A(int n): tab{malloc(sizeof(int) * n)}, s{n}}
A(const A& orig): tab{malloc(sizeof(int) * orig.s)}, s{orig.s}} //constr de copie
const A& operator = (...){...}
~A(){free(this->tab);}
}
int main(void){
A tab1{10};
A* ptab2 = malloc(sizeof(A)); //pas d'appel au constructeur de la classe A
A* ptab3 = new A{10}; //reservation sur le tas ET appel au constructeur A(int)
free(ptab2) //libération seule
delete ptab3; //appel au destruceur sur *ptab ET libération de la mémoire
}