Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2274 connectés 

  FORUM HardWare.fr
  Programmation

  petit prob de débutant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

petit prob de débutant

n°159862
SVCDman
Posté le 15-06-2002 à 16:19:01  profilanswer
 

mon problème est simple:
j'ai une classe client , dans laquelle je declare le nom, prenom,ville et des methodes set_nom, get_nom, ...
 
je voudrais faire un main qui demande "nom du client", on met un nom, il fait un set_nom, puis il affiche le resultat :"le nom est :" et il utilise le get_nom.
 
Mais je n'arrive pas à faire fonctionner ce prog.
Pouvez vous m'aider?
Merci

mood
Publicité
Posté le 15-06-2002 à 16:19:01  profilanswer
 

n°159872
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-06-2002 à 16:24:55  profilanswer
 

On pourrait t'aider si tu postais ton source...


---------------
J'ai un string dans l'array (Paris Hilton)
n°159875
Cherrytree
cn=?
Posté le 15-06-2002 à 16:27:19  profilanswer
 

SVCDman a écrit a écrit :

mon problème est simple:
j'ai une classe client , dans laquelle je declare le nom, prenom,ville et des methodes set_nom, get_nom, ...
 
je voudrais faire un main qui demande "nom du client", on met un nom, il fait un set_nom, puis il affiche le resultat :"le nom est :" et il utilise le get_nom.
 
Mais je n'arrive pas à faire fonctionner ce prog.
Pouvez vous m'aider?
Merci  



En quel langage ?


---------------
Le site de ma maman
n°159878
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 15-06-2002 à 16:30:04  profilanswer
 

Cherrytree a écrit a écrit :

En quel langage ?  



j'allais dire la même chose que harkonnen et CherryTree ;))


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°159879
SVCDman
Posté le 15-06-2002 à 16:30:12  profilanswer
 

//main.cpp
 
#include "Client.h"
void main()
{
char string_temp [100] ;
Client toto;
cout << "Donner nom du client" << endl;
cin >>   string_temp ;
toto.set_Nom (string_temp ) ;
affich = new char [20] ;
affich = toto.get_Nom ();
cout << affich << endl;
}
-----------------------------------
//Client.h
 
class Client
{
char * Nom;
char * get_Nom()  ;
void set_Nom(char left [20]);
}
------------------------------------
//client.cpp
#include "Client.h"
 
 
Client::Client()
{
strcat ( Nom , "" );
char * Client::get_Nom()
{
    return Nom;
}
 
     
void Client::set_Nom(char left[20])
{
    strcat (Nom , left) ;
}

n°159880
SVCDman
Posté le 15-06-2002 à 16:31:01  profilanswer
 

EN C++
désolé j'avais oublié....

n°159882
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-06-2002 à 16:42:26  profilanswer
 

ouh la la...
j'ai vaguement regardé, mais ton source est truffé d'erreurs !
 
je commence :

Code :
  1. void main()
  2. {
  3. char string_temp [100] ;
  4. Client toto;
  5. cout << "Donner nom du client" << endl;
  6. cin >>   string_temp ;
  7. toto.set_Nom (string_temp ) ;
  8. affich = new char [20] ;
  9. affich = toto.get_Nom ();
  10. cout << affich << endl;
  11. }
  12. -----------------------------------
  13. //Client.h  
  14. class Client
  15. {
  16. char * Nom;
  17. char * get_Nom()  ;
  18. void set_Nom(char left [20]);
  19. }


 
1ere erreur : set_Nom prend une chaine de 20 caractères en argument, et tu lui fournis une chaine de 100 caractères maxi
 

Code :
  1. strcat ( Nom , "" );


 
2ème erreur :  je pense que tu ferais mieux d'utiliser strcpy...
 

Code :
  1. affich = new char [20] ;


 
3ème erreur : il est ou le delete correspondant ?
 
y'en a surement d'autres, mais corrige déja celles-ci...


---------------
J'ai un string dans l'array (Paris Hilton)
n°159887
SVCDman
Posté le 15-06-2002 à 16:44:13  profilanswer
 

merci  
je sais je suis nul en programmation, mais je débute.

n°159896
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-06-2002 à 17:03:43  profilanswer
 

et puis aussi, déclares ton constructeur dans le fichier d'entete, n'oublie pas l'accolade fermante de ton constructeur, déclares tes variables membres en private, etc...


---------------
J'ai un string dans l'array (Paris Hilton)
n°159903
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-06-2002 à 17:19:23  profilanswer
 

Bon, dans mon infinie bonté, je te donne le corrigé. En bas de mon article. Comme ça, tu pourras essayer de le faire avant de le lire
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
D'abord la fonction principale :

Code :
  1. #include "Client.h"
  2. #include <iostream.h>
  3. int main(void)
  4. {
  5.        char string_temp [20] ;
  6.        char *affich = NULL;
  7.        Client toto;
  8.        cout << "Donner nom du client" << endl;
  9.        cin >>   string_temp ;
  10.        toto.set_Nom (string_temp) ;
  11.        affich = toto.get_Nom ();
  12.        cout << affich << endl;
  13. }


J'ai remplacé le new affich[20] par une initialisation de pointeur. Ce que tu faisais était inutile, vu que la mémoire est déja réservée.
 
Je t'ai aussi rajouté l'inclusion d'iostream, pour déclarer cout.
 
Ensuite, le header de ta classe :

Code :
  1. class Client
  2. {
  3. public:
  4.         Client();
  5.         char *get_Nom()  ;
  6.         void set_Nom(char left[20]);
  7. private:
  8.         char Nom[20];
  9. };


Je t'ai inclus la déclaration du constructeur, et je t'ai placé en private la chaine Nom, vu que tu l'initialises et que tu la lis via des méthode publiques.
 
Enfin, la classe Client :

Code :
  1. #include "Client.h"
  2. #include <string.h>
  3. Client::Client()
  4. {
  5. }
  6. char *Client::get_Nom()
  7. {
  8.         return Nom;
  9. }
  10.  
  11. void Client::set_Nom(char left[20])
  12. {
  13.         strcpy(Nom,left) ;
  14. }


Nul besoin d'initialiser Nom dans le constructeur, vu que tu l'initialises dans la fonction set_Nom.
 
Voila, j'ai pas testé ce code, mais s'il y a des erreurs, je te laisse les chercher et les corriger ;)
 
A+


Message édité par Harkonnen le 15-06-2002 à 17:21:40

---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 15-06-2002 à 17:19:23  profilanswer
 

n°159908
smaragdus
whores, drugs & J.S. Bach
Posté le 15-06-2002 à 17:39:40  profilanswer
 

Plus sûr :
 

Code :
  1. #define TAILLE_MAX_NOM 20
  2. class Client
  3. {
  4. public:
  5.        Client();
  6.        const char* get_Nom() const;
  7.        void set_Nom(const char* left);
  8. private:
  9.        char Nom[TAILLE_MAX_NOM];
  10. };

n°160243
SVCDman
Posté le 16-06-2002 à 15:57:51  profilanswer
 

Merci beaucoup ça fonctionne parfaitement maintenant!!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  petit prob de débutant

 

Sujets relatifs
SQL debutant cherche erreur syntaxe [resolu]Prob avec mail de phpBB2
[ACCESS] prob de requète --> dépassement de capacité ?!?!?un petit nouveau aller voire : www........fr.st
[JSP/tomcat] Probleme de debutant[ACCESS] prob de %
kkun connait un petit '.exe' pour décompresser les mp3 en wav ?[PHP] prob avec upload e fichiers(images) et la variable $_FILES
[VBA] Débutant -> soucis avec Combo et ListBox[Débutant prog] Un programme pour gérer une auto-école..quel language?
Plus de sujets relatifs à : petit prob de débutant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR