petit prob de débutant - Programmation
Marsh Posté le 15-06-2002 à 16:24:55
On pourrait t'aider si tu postais ton source...
Marsh Posté le 15-06-2002 à 16:27:19
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 ?
Marsh Posté le 15-06-2002 à 16:30:04
Cherrytree a écrit a écrit : En quel langage ? |
j'allais dire la même chose que harkonnen et CherryTree )
Marsh Posté le 15-06-2002 à 16:30:12
//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) ;
}
Marsh Posté le 15-06-2002 à 16:42:26
ouh la la...
j'ai vaguement regardé, mais ton source est truffé d'erreurs !
je commence :
Code :
|
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 :
|
2ème erreur : je pense que tu ferais mieux d'utiliser strcpy...
Code :
|
3ème erreur : il est ou le delete correspondant ?
y'en a surement d'autres, mais corrige déja celles-ci...
Marsh Posté le 15-06-2002 à 16:44:13
merci
je sais je suis nul en programmation, mais je débute.
Marsh Posté le 15-06-2002 à 17:03:43
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...
Marsh Posté le 15-06-2002 à 17:19:23
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 :
|
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 :
|
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 :
|
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+
Marsh Posté le 15-06-2002 à 17:39:40
Plus sûr :
Code :
|
Marsh Posté le 15-06-2002 à 16:19:01
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