21xrx.com
2024-09-19 09:56:29 Thursday
登录
文章检索 我的文章 写文章
C++中的友元类
2023-07-04 19:16:24 深夜i     --     --
C++ 友元类 访问权限 类成员 封装

在C++中,类可以使用友元关键字将其它类或函数声明为友元,使得它们可以访问该类的私有成员和保护成员。同样的,使用友元类可以让一个类访问其存储在另一个类中的私有成员和保护成员。

在C++中,可以通过将一个类声明为另一个类的友元,使得被声明的类可以访问友元类中的私有成员和保护成员。这种友元关系可以在类的声明或定义中使用friend关键字来声明。

下面是一个简单的示例,演示了如何在C++中使用友元类。在这个示例中,我们定义了两个类,Student和Teacher。我们想要让Teacher类可以访问Student类中的私有成员,因此我们需要将Teacher类声明为Student类的友元。


#include <iostream>

using namespace std;

class Student

{

private:

  int score;

public:

  Student()

 

   score = 0;

 

  // 将Teacher类声明为友元

  friend class Teacher;

};

class Teacher

{

public:

  void setScore(Student& student, int s)

 

   student.score = s;

 

};

int main()

{

  Student stu;

  Teacher t;

  t.setScore(stu, 90);

  cout << "学生的分数是: " << stu.score << endl;

  return 0;

}

在上面的示例中,我们将Teacher类声明为Student类的友元,它可以访问Student类中的私有成员score。在Teacher类中,我们定义了一个函数setScore,它接受一个Student对象作为参数,并将分数设置为90。 main函数创建了一个Student对象和Teacher对象,并调用setScore函数来设置学生的分数。最后,我们使用cout语句输出学生的分数。

需要注意的是,使用友元类可能会破坏类的封装性。如果不小心使用,可能会导致代码难以维护和调试。因此,使用友元类应该慎重考虑,并谨慎地使用它。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复