定义一个学生类,包含若干个学生数据(姓名,性别,学号,班级),友元一个辅导员类(或设置一个友元函数),访问学生的学号和成绩。代码简单, 包含详细注释
时间: 2024-10-10 11:09:42 浏览: 34
如何在 C++ 中实现一个单例类模板
```cpp
// 定义一个基础的学生类 Student,包含姓名、性别、学号和班级信息
class Student {
public:
// 构造函数用于初始化学生数据
Student(std::string name, char gender, int student_id, std::string class_name) :
name(name), gender(gender), student_id(student_id), class_name(class_name) {}
// 数据成员
std::string name; // 学生姓名
char gender; // 性别 ('M' or 'F')
int student_id; // 学号
std::string class_name; // 班级
private:
// 友元关系,允许辅导员访问学生的数据
friend class Tutor;
// 设置友元函数,仅允许辅导员访问学号和成绩,这里假设有一个成绩成员
friend std::string get_student_info(Student& student); // 添加返回成绩的函数
};
// 辅导员类 Tutor,作为Student类的友元
class Tutor {
public:
// 使用get_student_info()获取学生的信息
static std::string get_student_info(Student& student) {
// 访问学生学号和成绩,这里为了简化示例,只打印学号,实际操作需要获取并处理成绩
std::cout << "Student ID: " << student.student_id << ", Score: (Not shown)" << std::endl;
return "Student ID: " + std::to_string(student.student_id);
}
};
// 主程序测试
int main() {
// 创建学生对象
Student stu("张三", 'M', 1001, "一班");
// 调用辅导员的友元函数获取学生信息
Tutor::get_student_info(stu);
return 0;
}
```
阅读全文