一道C++题目,找错

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:24:21
设计一个学生类,拥有的数据成员是学号,姓名,电话号码,所属院系,成员函数包括访问和修改这些属性,在main函数中定义对象,并输出相关信息。

#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