设计一个带有构造函数和析构函数的学生类。
时间: 2023-05-29 12:05:35 浏览: 131
类、构造函数、析构函数.pdf
以下是一个示例学生类的代码,其中包括了构造函数和析构函数:
```c++
#include <string>
#include <iostream>
class Student {
public:
// 构造函数
Student(std::string name, int age, int id) :
m_name(name), m_age(age), m_id(id) {
std::cout << "Create a student: " << m_name << std::endl;
}
// 析构函数
~Student() {
std::cout << "Destroy a student: " << m_name << std::endl;
}
// 获取学生姓名
std::string getName() {
return m_name;
}
// 获取学生年龄
int getAge() {
return m_age;
}
// 获取学生学号
int getId() {
return m_id;
}
private:
std::string m_name; // 学生姓名
int m_age; // 学生年龄
int m_id; // 学生学号
};
```
在上述代码中,构造函数使用参数初始化列表来初始化成员变量。当创建一个学生对象时,会输出一条创建学生对象的提示信息。而析构函数则在销毁一个学生对象时被调用,输出一条销毁学生对象的提示信息。
此外,这个示例学生类还包括了三个成员函数,用于获取学生的姓名、年龄和学号。这些函数没有修改成员变量的值,因此被定义为常量成员函数,以确保它们不会修改对象的状态。
可以使用以下代码来测试这个学生类的构造函数和析构函数是否正常工作:
```c++
int main() {
Student s1("Tom", 18, 1001);
std::cout << s1.getName() << " " << s1.getAge() << " " << s1.getId() << std::endl;
Student s2("Jerry", 20, 1002);
std::cout << s2.getName() << " " << s2.getAge() << " " << s2.getId() << std::endl;
return 0;
}
```
这段代码首先创建了两个学生对象,然后分别输出这两个学生对象的姓名、年龄和学号。当程序结束时,这两个学生对象会被销毁,并分别输出销毁学生对象的提示信息。
阅读全文