m0_53924797 2021-05-27 15:12 采纳率: 72.7%
浏览 39
已采纳

实在不会╮(╯_╰)╭

设计一个学生类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