一道C++题目,找错
来源:百度知道 编辑:UC知道 时间:2024/06/08 14:24:21
#include<iostream>
using namespace std;
class Student
{
private:
long num;
char *name;
long tel;
char *college;
public:
Student(long n,char *p,long t,char*c);
SetStudent(long num,char*name,long tel,char *college);
long getnum();
char* getname();
long gettel();
char* getcollege();
};
Student::Student(long n,char *p,long t,char*c)
{
num=n;
name=new char(strlen(p)+1);
strcpy(name,p);
tel=t;
college=new char(strlen(c)+1);
strcpy(college,c);
}
Student::SetStudent(long n,char *p,long t,char*c)
{
num=n;
name=new char(strlen(p)+1);
strcpy(name,p);
tel=t;
college=new char(strlen(c)+1);
strcpy(college,c);
}
long Student::getnum()
{
return num;
}
char* Student::getname()
{
return nam
你的函数传参是以静态存储的常量传参,那么它传参后默认为const。你对const类型数据操作是不正确的,换成自己输入以动态方式存储就对了
#include<iostream>
using namespace std;
class Student
{
private:
long num;
char *name;
long tel;
char *college;
public:
Student(long n,char *p,long t,char*c);
SetStudent(long num,char*name,long tel,char *college);
long getnum();
char* getname();
long gettel();
char* getcollege();
};
Student::Student(long n,char *p,long t,char*c)
{
num=n;
name=new char(strlen(p)+1);
strcpy(name,p);
tel=t;
college=new char(strlen(c)+1);
strcpy(college,c);
}
Student::SetStudent(long n,char *p,long t,char*c)
{
num=n;
name=new char(strlen(p)+1);
strcpy(name,p);
tel=t;
college=new char(strlen(c)+1);
strcpy(college,c);
}
long Student::getnum()
{
return num;
}
char* Stud