类中的**成员函数可以访问到类的私有数据**
#include <iostream>
using namespace std;
class Student{
public:
void getData();
Student(){
score = 100.0;
}
private:
double score;
};
int main(){
Student stu;
// cout << stu.score << endl; => 私有数据不能直接访问
stu.getData(); // 通过成员函数来访问
return 0;
}
一个类(A)可以成为另一个类(B)的友元
这样可以让 A 访问到 B 中的私有数据
比如:
假如有一个老师类,一个学生类,学生的姓名和学号都是私有的;
现在需要通过老师中一个成员函数来获取到他所管理的学生。
#include <iostream>
#include <string>
using namespace std;
class Teacher;
class Student{
friend class Teacher; // 声明Teacher是友元类
public:
Student();
double score;
private:
string name;
string number;
};
class Teacher{
public:
void getStudent();
Teacher();
private:
Student* stu;
};
Teacher::Teacher(){
stu = new Student;
}
void Teacher::getStudent(){ //成员函数可以访问私有变量
cout << stu->name << endl;
cout << stu->number << endl;
cout << stu->score << endl;
}
Student::Student(){
name = "yxr";
number = "2020112617";
score = 100.0;
}
int main(){
Student stu;
Teacher tech;
tech.getStudent();
system("pause");
return 0;
}