21xrx.com
2024-06-03 00:05:58 Monday
登录
文章检索 我的文章 写文章
C++中友元函数和友元类的使用方法
2023-07-14 10:10:45 深夜i     --     --
C++ 友元函数 友元类 访问私有成员变量 封装

C++中的友元函数和友元类是一种比较特殊的函数和类,它们可以访问类的私有成员,而不需要通过类对象来实现。友元函数和友元类可以在一定程度上提高程序的可读性、性能和封装性,因此在实际的开发过程中得到了广泛的应用。

友元函数的使用方法:

首先,我们需要定义一个类:

class MyClass {

private:

  int a;

public:

  MyClass(int b) : a(b){}

  friend void myFunction(MyClass &obj);

};

其中,我们定义了一个私有成员变量a和一个友元函数myFunction。友元函数myFunction中的obj参数是MyClass的对象,该函数可以访问该类对象的私有成员a。具体用法如下:

void myFunction(MyClass &obj)

  std::cout << "Value of a is: " << obj.a << std::endl;

在这里,我们定义了一个名为myFunction的函数,它属于全局函数,却可以访问MyClass的私有成员a。需要注意的是,在类中定义友元函数时,需要在函数前加上friend关键字,以表示该函数是一个友元函数。

友元类的使用方法:

除了友元函数之外,C++还提供了一种特殊的类,称为友元类。友元类可以访问当前类中的私有成员和保护成员,从而实现不同类之间的数据交换。友元类的定义方式比较简单,我们可以在一个类中定义另一个类为友元类:

class MyClass

private:

  int a;

  friend class MyFriendClass;

;

在这里,我们定义了一个名为MyFriendClass的友元类,该类可以访问MyClass中的私有成员a。在MyFriendClass类中,我们可以使用MyClass类的私有成员a:

class MyFriendClass {

public:

  void myFunction(MyClass &obj)

    obj.a = 10;

};

这里,我们在MyFriendClass类中定义了一个名为myFunction的函数,在该函数中,我们可以访问MyClass类的成员a,并将其赋值为10。需要注意的是,在MyClass类中定义友元类时,需要在类名前加上friend关键字,以表示该类是一个友元类。

总结:

友元函数和友元类是C++中比较特殊的函数和类,它们可以直接访问类的私有成员,从而实现不同类之间的数据交换。在实际的开发过程中,我们可以使用友元函数和友元类提高程序的可读性、性能和封装性。需要注意的是,在定义友元函数和友元类时,必须在前面加上friend关键字。

  
  

评论区

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