类中的**成员函数可以访问到类的私有数据**

    1. #include <iostream>
    2. using namespace std;
    3. class Student{
    4. public:
    5. void getData();
    6. Student(){
    7. score = 100.0;
    8. }
    9. private:
    10. double score;
    11. };
    12. int main(){
    13. Student stu;
    14. // cout << stu.score << endl; => 私有数据不能直接访问
    15. stu.getData(); // 通过成员函数来访问
    16. return 0;
    17. }

    一个类(A)可以成为另一个类(B)的友元
    这样可以让 A 访问到 B 中的私有数据

    比如:
    假如有一个老师类,一个学生类,学生的姓名和学号都是私有的;
    现在需要通过老师中一个成员函数来获取到他所管理的学生。

    1. #include <iostream>
    2. #include <string>
    3. using namespace std;
    4. class Teacher;
    5. class Student{
    6. friend class Teacher; // 声明Teacher是友元类
    7. public:
    8. Student();
    9. double score;
    10. private:
    11. string name;
    12. string number;
    13. };
    14. class Teacher{
    15. public:
    16. void getStudent();
    17. Teacher();
    18. private:
    19. Student* stu;
    20. };
    21. Teacher::Teacher(){
    22. stu = new Student;
    23. }
    24. void Teacher::getStudent(){ //成员函数可以访问私有变量
    25. cout << stu->name << endl;
    26. cout << stu->number << endl;
    27. cout << stu->score << endl;
    28. }
    29. Student::Student(){
    30. name = "yxr";
    31. number = "2020112617";
    32. score = 100.0;
    33. }
    34. int main(){
    35. Student stu;
    36. Teacher tech;
    37. tech.getStudent();
    38. system("pause");
    39. return 0;
    40. }