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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
| #include <iostream.h>
#include <conio.h>
#include <string.h>
class Personne{
char *nom;
char *prenom;
unsigned int age;
public:
Personne();
Personne(char*,char*,unsigned int);
Personne(Personne&);
~Personne();
void affichage();
void modifier();
void clonage (Personne &);
Personne& operator=(Personne&);
int operator==(Personne&);
//friend void creer (Personne *tab,int n);
//friend void afficher (Personne *tab);
};
Personne::Personne(){
nom=NULL;
prenom=NULL;
age=0;
}
Personne::Personne(char *a,char *b,unsigned int c){
nom=new char[20];
strcpy(nom,a);
prenom=new char[20];
strcpy(prenom,b);
age=c;
}
Personne::~Personne(){
nom=NULL;
prenom=NULL;
}
void Personne::affichage(){
cout<<"\n------------------";
cout<<"\nLe nom "<<nom<<"\nLe prenom "<<prenom<<"\nL'age "<<age;
cout<<"\n------------------";
}
Personne::Personne(Personne&p){
clonage(p);
}
void Personne::modifier(){
int c;
char *chaine;
int age2;
cout<<"\nQuoi changer\n<1>. nom\n<2>. prenom\n<3>. age\n";
cin>>c;
switch(c){
case 1:cout<<"\nVeuillez entrer la nouvelle chaine...";
cin>>chaine;
strcpy(nom,chaine);
break;
case 2:cout<<"\nVeuillez entrer la nouvelle chaine ...";
cin>>chaine;
strcpy(prenom,chaine);
break;
case 3:cout<<"\nVeuillez entrer la nouvelle valeur ...";
cin>>age2;
age=age2;
break;
}
}
Personne& Personne::operator=(Personne& p){
if(this!=&p){
delete nom;
delete prenom;
nom=new char[20];
prenom=new char[20];
clonage(p);
}
return *this;
}
int Personne::operator==(Personne& p){
if(!strcmp(nom,p.nom) && !strcmp(prenom,p.prenom) && age==p.age) return 1;
return 0;
}
void Personne::clonage(Personne &p){
strcpy(prenom,p.prenom);
strcpy(nom,p.nom);
age=p.age;
}
void creer(Personne *tab,int n){
tab=new Personne[n];
char *chaine1=new char[20];
char *chaine2=new char[20];
int c;
for(int i=0;i<=n;i++)
{cout <<"\nNom : ";cin>>chaine1;
cout <<"\nPrenom : ";cin>>chaine2;
cout <<"\nAge : ";cin>>c;
(*(tab+i))=Personne (chaine1,chaine2,c);
}
//tab[0].affichage();---->sa marche bien
}
void afficher(Personne *tab,int n){
for(int i=0;i<=n;i++){
(*(tab+i)).affichage();
}
}
void main(){
clrscr();
Personne p1("tow" , "tiw" , 20 );
Personne p2("gj,","hic",41);
p1.affichage();
p2.affichage();
p2.modifier();
p2.affichage();
p2=p1;
p2.affichage();
/*********************************************/
int n=2;
Personne *tab;
creer(tab,n);
(*tab).affichage();
//tab[0].affichage();---->sa ne donne rien :s
getch();
afficher(tab,n);
/*********************************************/
getch();
} |
Partager