通过友元类实现针对特定类开放读写功能,而对其他类只开放读功能

  • A+
所属分类:C++
  1. class MyClass;
  2. class FriendClass {
  3. public:
  4.     void readData(const MyClass& obj) {
  5.         // 读取数据的操作
  6.         int data = obj.privateData; // 访问私有数据
  7.         // 进行读取操作
  8.     }
  9.     void writeData(MyClass& obj) {
  10.         // 写入数据的操作
  11.         obj.privateData = 100; // 修改私有数据
  12.         // 进行写入操作
  13.     }
  14. };
  15. class MyClass {
  16. private:
  17.     int privateData; // 私有数据,只能在类内部或友元类中访问
  18. protected:
  19.     int protectedData; // 受保护数据,可以在类内部和派生类中访问
  20.     friend class FriendClass; // 声明 FriendClass 为友元类
  21. public:
  22.     int publicData; // 公有数据,可以在任何地方访问
  23.     void readFunction() {
  24.         // 可以被任何类或函数访问
  25.         // 读取数据的操作
  26.     }
  27. };

在上面的代码中,FriendClass 是一个友元类,声明为 MyClass 的友元类。这意味着 FriendClass 类可以访问 MyClass 类的私有成员和受保护成员。

FriendClass 中的 readData() 函数可以读取 MyClass 对象的私有数据,并进行相应的操作。writeData() 函数可以修改 MyClass 对象的私有数据。

这样,通过友元类的机制,你可以在 FriendClass 中实现对特定类 MyClass 的读写功能,而对其他类只开放读功能。