2.创建一个学生类,该类有姓名、学号、语文成绩数据成员。构造函数初始化每一个数据成员,成员函数changeValue是改变该学生的语文成绩,然后利用display将数据输出出来。 程序要求: (1)对构造函数进行重载 (2)建立作用域不同的类对象,查看其析构函数的析构顺序。
时间: 2024-01-22 17:20:59 浏览: 9
建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。
4星 · 用户满意度95%
下面是实现以上要求的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string name;
int id;
int score;
public:
// 构造函数重载
Student() {}
Student(string n, int i, int s): name(n), id(i), score(s) {}
// 成员函数
void changeValue(int s) {
score = s;
}
void display() {
cout << "姓名:" << name << endl;
cout << "学号:" << id << endl;
cout << "语文成绩:" << score << endl;
}
// 析构函数
~Student() {
cout << "对象已销毁" << endl;
}
};
int main() {
{
Student s1("张三", 1001, 90);
s1.display();
s1.changeValue(95);
}
cout << "第一个对象已销毁" << endl;
{
Student s2("李四", 1002, 85);
s2.display();
}
cout << "第二个对象已销毁" << endl;
return 0;
}
```
输出结果为:
```
姓名:张三
学号:1001
语文成绩:90
对象已销毁
第一个对象已销毁
姓名:李四
学号:1002
语文成绩:85
对象已销毁
第二个对象已销毁
```
可以看出,当一个对象的作用域结束时,其析构函数就会被调用。在本程序中,先创建的对象 s1 先被销毁,后创建的对象 s2 后被销毁。
阅读全文