飞天De翔龙 飞天De翔龙
关注数: 14 粉丝数: 36 发帖数: 1,587 关注贴吧数: 10
各位帮忙看看错误出哪里了。输出结果怎么不是预期的字符串。 #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; } 重载赋值运算符的时候出了点问题,类里的变量不能被正确赋值,看了一个多小时没看出来错误出哪里了,各位帮忙看看了,谢谢啦
1 下一页