设计一个学生类Student,学生类中含有3个私有数据成员:num(学号)、name(姓名)、age(年龄);3个公有成员函数:Student(构造函数)、display、~Student(析构函数) ,写一个完整的程序,验证此类。 要求: 使用构造函数为Student类的对象赋值,其中数据成员name使用动态分配内存空间,display用来输出学生基本信息,在析构函数中释放动态分配的内存。 注:分别将数据成员name定义为字符数组、string类型重写程序,体会字符串成员操作方法。
代码如下,如有帮助,请采纳一下,谢谢。
name使用数组:
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
char* name;
int num;
int age;
public:
Student(const char* p,int xh,int ag)
{
int len = strlen(p);
name = new char[len + 1];
name[len] = '\0';
memcpy(name,p,len);
num = xh;
age = ag;
}
~Student(){delete[] name; name = 0;}
void display()
{
cout<< "name=" << name << ";num=" << num <<";age=" << age <<endl;
}
};
int main()
{
Student stu("zhangsan",1111,23);
stu.display();
return 0;
}
name使用string:
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
string name;
int num;
int age;
public:
Student(string nn,int xh,int ag){name = nn;num = xh;age = ag;}
~Student(){}
void display()
{
cout<< "name=" << name << ";num=" << num <<";age=" << age <<endl;
}
};
int main()
{
Student stu("zhangsan",1111,23);
stu.display();
return 0;
}