C++的友元类

C++ 中的友元类是一种特殊的类,它允许一个类授权另一个类或函数访问其私有成员。友元类的使用可以提供更好的封装和安全性,同时也可以增强代码的灵活性和可读性。

声明友元类 在 C++ 中,声明一个类为另一个类的友元类需要在该类中进行声明。例如,如果类 MyClass1 希望将类 MyClass2 声明为其友元类,则需要在 MyClass1 中进行如下声明:

class MyClass2; // 前向声明 MyClass2 类

class MyClass1 {
  friend class MyClass2; // 声明 MyClass2 为友元类
};

在这个例子中,MyClass2 被声明为 MyClass1 的友元类,MyClass2 可以访问 MyClass1 中的私有成员。

示例 下面是一个友元类的示例,其中 MyClass2 是 MyClass1 的友元类:

#include <iostream>

class MyClass2;

class MyClass1 {
 public:
  MyClass1() : private_var_(42) {}

  friend class MyClass2;

 private:
  int private_var_;
};

class MyClass2 {
 public:
  void AccessPrivateVar(const MyClass1& my_class1) {
    std::cout << "The private variable of MyClass1 is: " << my_class1.private_var_ << std::endl;
  }
};

int main() {
  MyClass1 my_class1;
  MyClass2 my_class2;

  my_class2.AccessPrivateVar(my_class1);

  return 0;
}
在这个示例中,MyClass1 中的 private_var_ 变量被声明为私有成员,MyClass2 被声明为 MyClass1 的友元类。MyClass2 可以访问 MyClass1 中的 private_var_ 变量,因为它是 MyClass1 的友元类。

总结 C++ 中的友元类是一种特殊的类,它可以授权另一个类或函数访问其私有成员。友元类的使用可以提供更好的封装和安全性,同时也可以增强代码的灵活性和可读性。要将一个类声明为另一个类的友元类,需要在该类中进行声明。

 

private构造函数怎么才能被用到

  1. 使用友元类的对象中的方法来创建它。
  2. 在本类中实现static方法来创建它。
posted @ 2023-05-05 15:44  冰糖葫芦很乖  阅读(148)  评论(0编辑  收藏  举报