21xrx.com
2024-11-22 09:42:32 Friday
登录
文章检索 我的文章 写文章
C++成员函数作为友元函数
2023-07-05 05:51:10 深夜i     --     --
C++ 成员函数 友元函数

C++中的友元函数是一个拥有访问类私有成员的非成员函数,方便类的其他对象或者函数访问类的私有成员。通常,我们使用友元函数来提高程序的安全性和灵活性。

C++中,成员函数也可以被定义为友元函数。当一个成员函数被定义为友元函数时,它将可以访问类的所有私有成员,而不仅仅是该成员函数的成员变量和函数。

定义成员函数为友元函数的方法非常简单,只需要在类的定义中,将需要定义为友元函数的成员函数声明为友元函数即可。例如:


class MyClass{

public:

  friend void MyFriendFunction(MyClass &myObj);

private:

  int privateMember;

public:

  void setPrivateMember(int member)

    privateMember = member;

  

};

void MyFriendFunction(MyClass &myObj)

  cout<< "访问 MyObj 的私有成员: " << myObj.privateMember << endl;

int main(){

  MyClass Obj;

  Obj.setPrivateMember(8);

  MyFriendFunction(Obj);

  return 0;

}

在上面的代码中,我们定义了一个类 MyClass,它有一个私有成员变量 privateMember和一个public函数setPrivateMember,用于设置其私有成员变量的值。我们还定义了一个名为MyFriendFunction的函数,它被声明为“friend”(友元)函数,这表示它被定义为MyClass的成员函数。在MyFriendFunction函数中,我们可以访问myObj的所有私有成员,包括 privateMember。

在main函数中,我们创建了一个MyClass的对象Obj,通过调用其setPrivateMember函数设置了它的私有成员变量的值为8。然后,我们调用MyFriendFunction函数并将Obj传递给它,可以看到函数成功地访问了Obj的私有成员变量。

总结一下,使用C++中的成员函数作为友元函数,可以在保证程序安全性和灵活性的同时,方便对类的私有成员进行访问。这一特性可以在实际编程中提高程序的效率和可读性。

  
  

评论区

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