本关任务:编写一个程序完成Student类的构造函数重载和析构函数的定义,并在主函数中验证其正确性。 相关知识 为了完成本关任务,你需要掌握:1.构造函数和析构函数 构造函数与析构函数 构造函数(constructor) 专门为对象提供自动初始化服务的函数 构造函数的特点 必须为成员函数; 与类同名; 没有返回值类型; 创建对象时自动调用; 必须为public成员。 构造函数的重载 格式:类中允许同时出现多个以参数表区分的构造函数。 作用:适应更多场景的初始化需求,带来更好的用户体验。 析构函数(Destructor) 必要性:释放资源(用户申请的内存空间等),其他任何收尾工作。 特点: 一种特殊成员函数 函数名为类名前加‘~’ 无参、无返回值类型 系统自动调用 不能重载 构造函数的一个逆过程 编程要求 根据提示,在右侧编辑器补充代码,设计并定义构造函数和析构函数,输出与测试案例一致的结果。 测试说明 平台会对你编写的代码进行测试: 测试输入: 刘德华 00001 95 95 95 预期输出: 姓名:无名 ID:000 C++成绩:0 数学成绩:0 英语成绩:0 姓名:刘德华 ID:00001 C++成绩:95 数学成绩:95 英语成绩:95 刘德华同学信息被注销 无名同学信息被注销 提示:
时间: 2024-03-10 10:50:14 浏览: 393
```C++
#include <iostream>
#include <string>
using namespace std;
class Student {
public:
string name;
string id;
int cppScore;
int mathScore;
int engScore;
// 完成构造函数的重载
Student() {
name = "无名";
id = "000";
cppScore = mathScore = engScore = 0;
}
Student(string n, string i, int c, int m, int e) {
name = n;
id = i;
cppScore = c;
mathScore = m;
engScore = e;
}
// 完成析构函数的定义
~Student() {
cout << name << "同学信息被注销" << endl;
}
};
int main() {
Student stu1;
cout << "姓名:" << stu1.name << " ID:" << stu1.id << " C++成绩:" << stu1.cppScore << " 数学成绩:" << stu1.mathScore << " 英语成绩:" << stu1.engScore << endl;
Student stu2("刘德华", "00001", 95, 95, 95);
cout << "姓名:" << stu2.name << " ID:" << stu2.id << " C++成绩:" << stu2.cppScore << " 数学成绩:" << stu2.mathScore << " 英语成绩:" << stu2.engScore << endl;
return 0;
}
```
阅读全文
相关推荐



















