Les destructeur en c++
rosaRosi
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
rosaRosi Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
rosaRosi Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je voudrais savoir quand se fait l appelle au setructeur .
par exemple j ai une classe a
class A{
int n;
A ();
~A();
}
et par exeple j ai definit ~A()
{
cout<< " c est un test"<<endl;
}
main()
{A x;
}
est ce qu i maffichera "c est un test " ou pas ce programme ou il se fait quand j appele une method merci de de m eclaircir!!
je voudrais savoir quand se fait l appelle au setructeur .
par exemple j ai une classe a
class A{
int n;
A ();
~A();
}
et par exeple j ai definit ~A()
{
cout<< " c est un test"<<endl;
}
main()
{A x;
}
est ce qu i maffichera "c est un test " ou pas ce programme ou il se fait quand j appele une method merci de de m eclaircir!!
A voir également:
- Les destructeur en c++
- Destructeur d odeur maison - Guide
3 réponses
#include <iostream>
#include <string>
class A
{
public:
A(std::string _nom) {
nom = _nom;
std::cout << "A::A de" << nom << std::endl;
}
~A() { std::cout << "A::~A de" << nom << std::endl; }
private:
std::string nom;
};
int main()
{
A* a1 = new A("a1"); // A::A de a1
A a2("a2"); // A::A de a2
delete a1; // A::~A de a1
{
A a3; // A::A de a3
} // A::~A de a3
} // A::~A de a2
Le destructeur d'un objet instancié dans le tas est appelé par l'instruction delete.
Le destructeur d'un objet instancié dans la pile est appelé à la fin du block.
#include <string>
class A
{
public:
A(std::string _nom) {
nom = _nom;
std::cout << "A::A de" << nom << std::endl;
}
~A() { std::cout << "A::~A de" << nom << std::endl; }
private:
std::string nom;
};
int main()
{
A* a1 = new A("a1"); // A::A de a1
A a2("a2"); // A::A de a2
delete a1; // A::~A de a1
{
A a3; // A::A de a3
} // A::~A de a3
} // A::~A de a2
Le destructeur d'un objet instancié dans le tas est appelé par l'instruction delete.
Le destructeur d'un objet instancié dans la pile est appelé à la fin du block.
merci beaucoup :) !!
alors ca veut dire que c est à la fin du programme principale les object dans la pile vont etre automatiquement effacé dans l ordre inverse c ca?
alors ca veut dire que c est à la fin du programme principale les object dans la pile vont etre automatiquement effacé dans l ordre inverse c ca?
les objets qui sont déclarés directement dans le programme principal seront en effet détruits à la fin du programme principal. Attention : si tu déclares tes objets dans un bloc { .. }, ils seront détruits à la fin du bloc.
Pour l'ordre, fait- simplement un essai, tu verras bien, ça ne fera pas exploser ton ordi ;)
Pour l'ordre, fait- simplement un essai, tu verras bien, ça ne fera pas exploser ton ordi ;)