#include<iostream>
using namespace std;
#include<string>
class Personne
{
public:
Personne operator=(const Personne&);
Personne();
Personne(const char* ,const char* ,const int);
~Personne();
void setNom(const char*);
void setPrenom(const char*);
void setAge(const int);
char* getNom();
char* getPrenom();
int getAge();
protected:
char* nom;
char* prenom;
int age;
};
Personne::Personne()
{
nom = new char[20];
prenom = new char[20];
age = 0;
}
Personne::Personne(const char* n,const char* pn,const int a)
{
nom = new char[20];
prenom = new char[20];
age = a;
strcpy(nom,n);
strcpy(prenom,pn);
}
Personne::~Personne()
{
delete[] nom;
delete[] prenom;
}
void Personne::setNom(const char* n)
{
strcpy(nom,n);
}
void Personne::setPrenom(const char* pn)
{
strcpy(prenom,pn);
}
void Personne::setAge(const int a)
{
age = a;
}
char* Personne::getNom()
{
return nom;
}
char* Personne::getPrenom()
{
return prenom;
}
int Personne::getAge()
{
return age;
}
Personne Personne::operator=(const Personne& p)
{
age = p.age;
strcpy(nom,p.nom);
strcpy(prenom,p.prenom);
return (*this);
}
ostream& operator<<(ostream& out,Personne& p)
{
out<<"nom:"<<p.getNom()<<" "<<"prenom:"<<p.getPrenom()<<" "<<"age:"<<p.getAge();
return out;
}
int main()
{
Personne p1("ZHANG","San",25);
Personne p2;
p2=p1;
cout<<p2<<endl;
return 0;
}
重载赋值运算符的时候出了点问题,类里的变量不能被正确赋值,看了一个多小时没看出来错误出哪里了,各位帮忙看看了,谢谢啦
using namespace std;
#include<string>
class Personne
{
public:
Personne operator=(const Personne&);
Personne();
Personne(const char* ,const char* ,const int);
~Personne();
void setNom(const char*);
void setPrenom(const char*);
void setAge(const int);
char* getNom();
char* getPrenom();
int getAge();
protected:
char* nom;
char* prenom;
int age;
};
Personne::Personne()
{
nom = new char[20];
prenom = new char[20];
age = 0;
}
Personne::Personne(const char* n,const char* pn,const int a)
{
nom = new char[20];
prenom = new char[20];
age = a;
strcpy(nom,n);
strcpy(prenom,pn);
}
Personne::~Personne()
{
delete[] nom;
delete[] prenom;
}
void Personne::setNom(const char* n)
{
strcpy(nom,n);
}
void Personne::setPrenom(const char* pn)
{
strcpy(prenom,pn);
}
void Personne::setAge(const int a)
{
age = a;
}
char* Personne::getNom()
{
return nom;
}
char* Personne::getPrenom()
{
return prenom;
}
int Personne::getAge()
{
return age;
}
Personne Personne::operator=(const Personne& p)
{
age = p.age;
strcpy(nom,p.nom);
strcpy(prenom,p.prenom);
return (*this);
}
ostream& operator<<(ostream& out,Personne& p)
{
out<<"nom:"<<p.getNom()<<" "<<"prenom:"<<p.getPrenom()<<" "<<"age:"<<p.getAge();
return out;
}
int main()
{
Personne p1("ZHANG","San",25);
Personne p2;
p2=p1;
cout<<p2<<endl;
return 0;
}
重载赋值运算符的时候出了点问题,类里的变量不能被正确赋值,看了一个多小时没看出来错误出哪里了,各位帮忙看看了,谢谢啦
再不顶就沉了
