//代码如下 头文件请自行查询
class Student
{
public:
Student(){
name = NULL;
year = 0;
}
~Student(){
if(name!=NULL){
delete[]name;
name = NULL;
}
}
Student(const char* sName){
name = NULL;
size_t len = strlen(sName);
if(len>0){
name = new char[len+1];
memset(name,0,len+1);
memcpy(name,sName,len);
}
year = 0;
}
Student(const char* sName,int nYear)
{
name = NULL;
size_t len = strlen(sName);
if(len>0){
name = new char[len+1];
memset(name,0,len+1);
memcpy(name,sName,len);
}
year = nYear;
}
Student(const Student& stu)
{
name = NULL;
if(stu.name){
size_t len = strlen(stu.name);
if(len>0){
name = new char[len+1];
memset(name,0,len+1);
memcpy(name,stu.name,len);
}
}
year = stu.year;
}
Student& operator=(const Student& stu)
{
if(name!=NULL){
delete name;
name = NULL;
}
if(this!=&stu){
if(stu.name){
size_t len = strlen(stu.name);
if(len>0){
name = new char[len+1];
memset(name,0,len+1);
memcpy(name,stu.name,len);
}
}
year = stu.year;
}
return *this;
}
void SetName(const char* sName)
{
size_t len = strlen(sName);
if(len>0){
if(name!=NULL){
delete name;
name = NULL;
}
name = new char[len+1];
memset(name,0,len+1);
memcpy(name,sName,len);
}
}
void SetYear(int nYear)
{
year = nYear;
}
void Show(){
printf("%s year %d\n",name,year);
}
private:
char* name;
int year;
};
int main()
{
Student zhangsan("张三");
Student lisi("李四",19);
Student wangwu;
zhangsan.SetYear(18);
zhangsan.Show();
lisi.Show();
wangwu.Show();
Student xiaozhang=zhangsan;
xiaozhang.Show();
return 0;
}
温馨提示:答案为网友推荐,仅供参考