Comment concevoir le type chose de facon que ce petit programme
affiche a l'écran, les résultats suivants :Code:
1
2
3
4
5 main() { chose X; cout<<"je travaille \n"; }
bonjour
je travaille
au revoir
Merci d'avance c'est tres urgent.
Version imprimable
Comment concevoir le type chose de facon que ce petit programme
affiche a l'écran, les résultats suivants :Code:
1
2
3
4
5 main() { chose X; cout<<"je travaille \n"; }
bonjour
je travaille
au revoir
Merci d'avance c'est tres urgent.
Mais le probleme est que dans main() on a :
main()
{ chose X;
cout<<"je travaille \n";}
Petit indice : La variable X de type chose est détruite à la fin de la fonction main.
En quoi la destruction de X peut elle me servir
Il n'est guère poli d'exprimer que le besoin est urgent, surtout lorsque manifestement, il s'agit d'un exercise, et que tu n'a pas du suivre avec assiduité le cours de C++.
Tu as "deux" méthodes spéciales pour un objet, son constructeur, et son destructeur.
Quand tu fais
Le prototype du constructeur vide et du destructeur d'une classe trucCode:
1
2
3
4
5
6 int main() { truc X; // ici tu appelle le constructeur sans argument de X // plein de choses } // on sort du scope de X, on appelle donc le destructeur de X
Bon courage.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class truc { public: // constructeur vide truc() { // ton implementation } // destructeur ~truc() { // ton implementation } // une methode "normale" chose une_fonction() {}; };
Alors, tu vois ou pas ?? :D
je n'arrive pas a voir jusqu'a present comment resoudre ce probleme
J'ai trouver Merci beaucoup a tous
La solution est :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class chose { public: chose() { cout<<"Bonjour \n"; } ~chose() { cout<<"Au Revoir \n"; } }; void main() { chose X; cout<<"Je travaille \n"; }
Bonjour,
Si c'est un exercice, tout va bien, sinon, cela laisse peu de possibilité au programme, ou plutôt, la classe chose n'est pas vraiment utile.
J'aurais préféré une ligne du type
while (!getch());
Mais, je ne suis pas prof:D
Il me semble que c'est effectivement pour apprendre les constructeurs/destructeurs.
@mthoumy : ton main n'est pas standard :
ouCode:int main()
Un main retournant void n'est pas standard.Code:iint main(int argc, char* argv[])
Perso, même si je pensais ne pas être mauvais en C++ ( sans être bon ) au début de la lecture de ce post, je n'avais pas vu l'astuce ... :?
Les exercices se résolvent très bien juste après le cours. Longtemps après ou si tu n'a pas appris le C++ par des cours, la question peut paraître incongrue et ne pas comprendre l'objectif de la chose... d'où ne pas voir la réponse évidente.