友元类是一种可访问其他类私有成员的特殊类。声明友元类时使用 friend 关键字,如:friend class friendclass; 在友元类中,可通过作用域解析运算符 (::) 访问友元类的私有成员:friendclass::accessprivatemember(outer); 实战案例:在班级管理系统中,teacher 类被声明为 student 类的友元类,允许 teacher 访问 student 的考试成绩(私有成员)。
C++ 中友元类的声明和用法
简介
友元类是一种特殊类型的类,它可以访问另一个类的私有成员。友元类用于在不同类之间建立协作,特别是在复杂的设计中。
立即学习“C++免费学习笔记(深入)”;
声明友元类
要声明一个友元类,请使用 friend 关键字,后跟类名:
class OuterClass { public: // ... private: // ... friend class FriendClass; // 声明 FriendClass 为 OuterClass 的友元类 };
访问友元类的成员
在友元类中,可以使用作用域解析运算符 (::) 来访问友元类的私有成员:
class FriendClass { public: void accessPrivateMember(OuterClass& outer) { cout << outer.private_member << endl; // 访问 OuterClass 的私有成员 private_member } };
实战案例
假设我们有一个班级管理系统。我们有一个 Student 类和一个 Teacher 类,用于存储学生和老师的信息。为了允许老师访问学生的考试成绩(私有成员),我们将其声明为 Teacher 类的友元类:
Student.h
class Student { public: // ... private: int exam_score; // 学生的考试成绩 friend class Teacher; // Teacher 类为 Student 的友元类 };
Teacher.h
class Teacher { public: void viewStudentExamScore(Student& student) { cout << student.exam_score << endl; // 访问 Student 的私有成员 exam_score } };
main.cpp
int main() { Student student1; // ... 初始化学生数据 Teacher teacher1; teacher1.viewStudentExamScore(student1); // 老师查看学生成绩 return 0; }
通过声明友元类,我们允许 Teacher 类访问 Student 类的私有成员,从而实现了不同类之间的协作。
以上就是C++ 中如何正确声明和使用友元类的详细内容,更多请关注php中文网其它相关文章!