La classe en c++

Bonjour,
mon programe ne se compile pas voici le fichier source
non du fichier lamte.h
#ifndef lamte
#define lamte
#include<stirng.h>
class ls {private:
char nom[20];
char prenom[20];
int age;
public:
ls(char n[20],char p[20],int a);
void saisir();
void afficher(); };
ls::ls(char n[20],char p[20],int a)
{ string(n,nom);
string(p,prenom);
a=age;}
void saisir::ls()
{ cout<<"donner votre nom ";cin>>nom;
cout<<"donner votre prenom ";cin>>prenom;
cout<<"donner votre age ";cin>>age;}
void afficher::ls() {cout<<"je m'appelle "<<nom<<" "<<prenom<<"\n";
cout<<"jai "<<age<<"\n"; }
#endif
nom du fichier lamte.c++
#include<iostream.h>
#include"lamte.h"
main( )
{ ls A; A.saisir(); A.afficher(); }
Merci
Configuration: Windows XP Internet Explorer 7.0

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    quel est le message d'erreur à la compilation?
    peux tu utiliser les balises < code > et < /code > (sans espaces) pour concerver la présentation de ton code stp ?
    1. apres le rmplacement des des fonction menbre ls::saisir ( )
      voici les erreurs
      Dans le fichier inclus à partir de lamte.c++:2:
      lamte.h:3:19: stirng.h : Aucun fichier ou répertoire de ce type
      In file included from lamte.c++:2:
      lamte.h: Dans constructor « ls::ls(char*, char*, int) »:
      lamte.h:13: error: `string' undeclared (first use this function)
      lamte.h:13: error: (Each undeclared identifier is reported only once for each
      function it appears in.)
      lamte.c++: Dans function « int main() »:
      lamte.c++:4: error: no matching function for call to `ls::ls()'
      lamte.h:4: error: candidates are: ls::ls(const ls&)
      lamte.h:13: error: ls::ls(char*, char*, int)
      1. Contributeur
        lamte.h:3:19: stirng.h : Aucun fichier ou répertoire de ce type

        -> avec string.h ca marcherai mieux... tu sais, il faut lire les messages !

        void saisir::ls()
        -> le nom de ta classe est ls, donc tu dois faire void ls::saisir()
        pareil pour afficher

        dans ton .h, le seul constructeur est un constructeur parametré: ls(char n[20],char p[20],int a);
        hors, dans le .cpp, tu appelles ls A , donc un constructeur par défaut (sans paramètres) qui n'existe pas !
        de plus, tu es dans le forum unix, je demande la migrationd e ton message vers le forum prorgammation
        1. Contributeur
          sois tu fais ton main comme ca:
          main( )
          { 
              ls A("roger","thierry",25); 
              A.saisir(); 
              A.afficher(); 
          } 


          soit tu fais un constructeur vide (vu que tu appelles "saisir")
          ls::ls()
          {}