#include<iostream>
#include<string>
using namespace std;
class student
{
private:
char *num;
char *name;
char *zhuangy;
public:
student(char *nu,char *na,char *zy)
{
num=new char[20];
name=new char[20];
zhuangy=new char[20];
strcpy(num,nu);
strcpy(name,na);
strcpy(zhuangy,zy);
}
~student()
{
delete []num;
delete []name;
delete []zhuangy;
}
student(int i)
{
num[0]=i%1000000000+'0';num[1]=i%100000000+'0';num[2]=i%10000000+'0';
num[3]=i%1000000+'0';num[4]=i%100000+'0';num[5]=i%10000+'0';
num[6]=i%1000+'0';num[7]=i%100+'0';num[8]=i%10+'0';
num[9]=i%1+'0';
//strcpy(num,x);
//strcpy(name,name);
//strcpy(zhuangy,zhuangy);
}
student(char* y)
{
num=new char[strlen(y)+1];
strcpy(num,y);
}
operator int()
{
int x;
x=(num[0]-'0')*1000000000+(num[1]-'0')*100000000+(num[2]-'0')*10000000+
(num[3]-'0')*1000000+(num[4]-'0')*100000+(num[5]-'0')*10000+
(num[6]-'0')*1000+(num[7]-'0')*100+(num[8]-'0')*10+
(num[9]-'0')*1;
return x;
}
void pnum()
{
cout<<num<<endl;
}
void pname()
{
cout<<name<<endl;
}
void pzy()
{
cout<<zhuangy<<endl;
}
student &operator=(const student &);
};
student &student::operator=(const student &x)
{
if(this==&x)return * this ;
delete num;
num=new char[(strlen(x.num)+1)];
strcpy(num,x.num);
return *this;
}
int main()
{
student stu1("2015033114","xm","网工"),stu2("2015033115","mk","网工"),stu3("2015033116","jc","网工");
student stu4(2014033111);
stu1=stu3;
/*stu2=student(2014033111);*/
stu2=stu4;
stu1.pnum();
/*stu2=1111111112;*/
stu2.pnum( );
cout<<int(stu2)-int(stu1)<<endl;
return 0;
}
既然是C++,字符串全部用string,不要用char数组了
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632