设计一个学生类Student,学生类中含有3个私有数据成员:num(学号)、name(姓名)、age(年龄);3个公有成员函数:Student(构造函数)、display、~Student(析构函数) ,写一个完整的程序,验证此类。 要求: 使用构造函数为Student类的对象赋值,其中数据成员name使用动态分配内存空间,display用来输出学生基本信息,在析构函数中释放动态分配的内存。 注:分别将数据成员name定义为字符数组、string类型重写程序,体会字符串成员操作方法。
1条回答 默认 最新
- qfl_sdu 2021-05-27 15:26关注
代码如下,如有帮助,请采纳一下,谢谢。
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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog