Chapitre 8 : destructeur et références const

Destructeur

On peut écrire une méthode qui sera implicitement / automatiquement appelé lors de la fin de "vie" de l'objet. Cette méthode est appelées destructeur son identifiant est celui de la classe précédé par ~. Il ne doit pas avoir de paramètre.

class{
    int v;
    public:
        A(int p) : v{p}{
            cout<< "Je suis construit" << v << endl;
        }
        ~A(){
            cout << "Je suis détruit" << v << endl;
        }
}


void f(){
    A p{4};
}

int main(void){
    A p{1}; //je suis construit 1
    {
        A g{2}; //je suis construit 2
    } // je suis détruit
    f(); // je suis construit 4
    //je suis détruit 4
    A e{7}; //Je suis construit 7
} // Je suis détruit 7
// Je suis détruit 1

Références const

On peut initialiser une référence sur "type const" avec une expression qui ne possède à priori pas d'adresse.

int a;
int& r1 = a;
const int&r2 = a;
const int& r3 = 3; //ok

const int b = 3;
//int &r4 = b; //erreur !
const int& r5 = b //ok