2.创建一个学生类,该类有姓名、学号、语文成绩数据成员。构造函数初始化每一个数据成员,成员函数changeValue是改变该学生的语文成绩,然后利用display将数据输出出来。 程序要求: (1)对构造函数进行重载 (2)建立作用域不同的类对象,查看其析构函数的析构顺序。
时间: 2024-01-22 16:21:01 浏览: 13
下面是示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string name;
int id;
int chineseScore;
public:
// 构造函数重载
Student() {}
Student(string n, int i, int c) : name(n), id(i), chineseScore(c) {}
// 成员函数
void changeValue(int c) {
chineseScore = c;
}
void display() {
cout << "姓名:" << name << endl;
cout << "学号:" << id << endl;
cout << "语文成绩:" << chineseScore << endl;
}
// 析构函数
~Student() {
cout << "析构函数被调用" << endl;
}
};
int main() {
{
Student stu1("张三", 2018001, 90);
stu1.display();
stu1.changeValue(95);
} // stu1超出作用域,析构函数被调用
{
Student stu2("李四", 2018002, 85);
stu2.display();
stu2.changeValue(88);
} // stu2超出作用域,析构函数被调用
return 0;
}
```
这个程序创建了两个学生对象 `stu1` 和 `stu2`,并分别输出了它们的信息。每个对象创建时都会调用构造函数进行初始化,每个对象超出作用域时都会调用析构函数进行清理。注意,析构函数的调用顺序与对象创建的顺序相反。在这个程序中,先创建的 `stu1` 后销毁,后创建的 `stu2` 先销毁。