创建一个学生类,该类有姓名、学号、语文成绩数据成员。构造函数初始化每一个数据成员,成员函数changeValue是改变该学生的语文成绩,然后利用display将数据输出出来。 程序要求: (1)对构造函数进行重载 (2)建立作用域不同的类对象,查看其析构函数的析构顺序。
时间: 2024-02-25 15:57:29 浏览: 25
好的,这是一个比较基础的题目,我可以帮你解决。以下是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
public:
string name;
int id;
double score;
Student() {}
Student(string n, int i, double s) {
name = n;
id = i;
score = s;
}
void changeValue(double s) {
score = s;
}
void display() {
cout << "姓名:" << name << endl;
cout << "学号:" << id << endl;
cout << "语文成绩:" << score << endl;
}
~Student() {
cout << "析构函数被调用" << endl;
}
};
int main() {
// 作用域1
{
Student s1("张三", 1001, 86.5);
s1.changeValue(90.0);
s1.display();
}
// 作用域2
{
Student s2("李四", 1002, 92.5);
s2.display();
}
return 0;
}
```
在这个程序中,我们创建了一个名为Student的类,它有三个数据成员:name、id和score,分别表示学生的姓名、学号和语文成绩。我们通过构造函数来初始化这三个数据成员,同时也提供了一个changeValue函数,用于改变学生的语文成绩。最后,我们通过display函数输出学生的信息。
在主函数中,我们创建了两个作用域不同的类对象s1和s2,并且分别调用了它们的成员函数。需要注意的是,在程序结束时,会自动调用析构函数,输出"析构函数被调用"的信息。可以看到,析构函数的调用顺序与对象的创建顺序相反。
希望这个例子能够帮助你理解如何创建一个类,并且熟悉类的构造函数和析构函数的使用。