Bonjour,
je suis débutant en C++. Voici le programme que j'ai écrit :
J'ai 2 choses non prévu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 ******************************************* ******************************************* #include <cstdlib> #include <iostream> #include <string.h> using namespace std; /****************** class chaine **************** *************************************************/ class chaine { public: chaine(const char* _val); void affiche(); int longueur; char* val; }; chaine::chaine(const char* _val) { longueur=strlen(_val); cout<<"ca passe"<<endl; cout<<" _val="<<_val<<" longueur="<<longueur<<endl; char* val=new char[longueur+1]; strcpy(val,_val); cout<<" val="<<val<<endl; } void chaine::affiche() { cout<<"chaine val="<<val<<endl; } int main(int argc, char *argv[]) { chaine chn1("test1"); cout<<"chn1.longueur="<<chn1.longueur<<endl; cout<<"chn1.val="<<chn1.val<<endl; system("PAUSE"); return EXIT_SUCCESS; }[/COLOR]************************************************
premièrement, lorsque je construit une chaine chn1 avec "test1" comme argument, le constructeur fonctionne correctement (j'ai vérifié) : le membre val (pointeur de caractère) est bien initialisé par "test1". Mais lorsque je vérifie après sa valeur (chn1.val) dans le programme principal il ne m'affiche plus rien. val s'est vidé. Je ne comprend pas.
Deuxièmement à la fin du programme, j'ai une fenêtre d'erreur qui s'affiche avec le message : programme2.exe a rencontré un problème et doit fermer. je ne comprend pas où il y a un deuxième BUG.
Qui pourrait répondre à mes 2 questions ? Merci d'avance.
Partager