21xrx.com
2025-06-27 05:43:37 Friday
登录
文章检索 我的文章 写文章
C++友元类代码实例
2023-07-02 12:57:28 深夜i     10     0
C++ 友元类 代码实例

C++是一种面向对象编程语言,友元是其中一个重要的概念。友元可以让其他类或函数访问类的私有成员,从而实现更灵活的编程。下面是一个C++友元类的代码实例。

首先,我们定义一个类A,其中包含一个私有成员变量x。

class A {
private:
  int x;
public:
  A(int value) : x(value) {}
  friend class B;
};

在这里,我们使用friend关键字声明了类B为A的友元类。

接下来,我们定义友元类B。

class B {
private:
  int y;
public:
  B() : y(0) {}
  void setX(A& a, int value)
    a.x = value;
  
  int getX(A& a)
    return a.x;
  
};

在类B中,我们定义了两个函数setX和getX,这些函数可以访问A类的私有成员x。setX函数可以设置A类的x成员的值,而getX函数则可以获取x成员的值。

现在,我们可以在主函数中测试这些友元函数。

int main() {
  A a(5);
  B b;
  cout << "a.x before setX: " << a.x << endl;
  b.setX(a, 10);
  cout << "a.x after setX: " << a.x << endl;
  cout << "a.x from getX: " << b.getX(a) << endl;
  return 0;
}

在这里,我们首先创建了一个A类的对象a,并将其初始值设为5。然后,我们创建了一个B类的对象b,通过setX函数将a的x成员的值设置为10,并使用getX函数获取x成员的值,最后输出结果。

通过这个例子,我们可以看到,友元类可以让其他类或函数访问类的私有成员,从而实现更灵活的编程。但是,在实际应用中,我们应该避免过度使用友元类,而是通过封装和继承等方式实现代码的安全性和可读性。

  
  

评论区