21xrx.com
2024-11-05 16:32:47 Tuesday
登录
文章检索 我的文章 写文章
C++中友元类的使用
2023-07-02 06:52:32 深夜i     --     --
C++ 友元类 使用

C++中,一个类可以将另一个类或函数声明为其友元,这意味着该类或函数可以访问另一个类的私有成员。这样做的好处是,可以限制访问,只允许特定的类或函数访问私有成员,从而保证程序的安全性。

声明友元类的语法格式为:

class B

  friend class A;

;

在上述语句中,类B将类A声明为其友元类。这意味着类A可以访问类B的私有成员。

友元类的作用很多,其中最常见的用途是使用外部类的私有成员,但在使用时需要注意以下几点:

1. 友元关系不具有传递性。如果类A是类B的友元,而类C是类A的友元,那么类C无法访问类B的私有成员。

2. 友元类的成员函数可以访问其友元类的私有成员,但该成员函数不是友元类。因此,它无法访问该类其他对象的私有成员。

3. 友元类的成员函数并不是直接成为其友元类的成员函数,它们不能继承到该类的子类中。

下面是一个友元类的示例:

#include

class B;

class A {

  public:

    void display(B& obj);

};

class B {

  private:

    int b_val;

    friend class A;

  public:

    B() : b_val(50) {}

};

void A::display(B& obj)

  std::cout << "The value of b_val is: " << obj.b_val << std::endl;

int main() {

  B b_obj;

  A a_obj;

  a_obj.display(b_obj);

  return 0;

}

在上述示例中,类B将类A声明为其友元类。因此,在类A中声明了一个名为display()的成员函数,并在该函数中使用了类B的私有成员b_val。在主函数中,我们创建了类B的一个对象b_obj和类A的一个对象a_obj,并调用类A中的display()函数来打印b_val的值。

友元类在程序设计中的使用非常广泛,特别是在访问受保护的代码时。了解如何使用友元类是成为一个合格C++开发者的重要一步。

  
  

评论区

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