C++ friend 关键字

C++ 友元函数

通常,类的私有成员只能使用公共方法(如 getter 和 setter)进行访问。但在某些情况下,您可以使用一个称为友元函数的特殊函数来直接访问它们。

友元函数不是类的成员,但它被允许访问类的私有数据:

实例

class Employee {
  private:
    int salary;

  public:
    Employee(int s) {
      salary = s;
    }

    // 声明友元函数
    friend void displaySalary(Employee emp);
};

void displaySalary(Employee emp) {
  cout << "薪水:" << emp.salary;
}

int main() {
  Employee myEmp(50000);
  displaySalary(myEmp);
  return 0;
}

亲自试一试

示例解释

  • 友元函数 displaySalary()Employee 类内部声明,但在其外部定义。
  • 尽管 displaySalary() 不是类的成员,它仍然可以访问私有成员 salary
  • main() 函数中,我们创建一个 Employee 对象并调用友元函数来打印其薪水。