📜  C ++程序使用Friend 函数交换两个成员(1)

📅  最后修改于: 2023-12-03 14:39:39.316000             🧑  作者: Mango

C ++程序使用Friend 函数交换两个成员

在 C ++ 中,可以使用友元函数处理和访问私有和受保护的成员。友元函数是一个独立的函数,但有权访问类的私有和受保护成员。

以下是一个示例程序,说明如何使用友元函数交换两个成员:

#include <iostream>
using namespace std;

class Example {
   private:
    int a, b;

   public:
    Example(int x, int y) {
        a = x;
        b = y;
    }
    void display() {
        cout << "a: " << a << " b: " << b << endl;
    }
    friend void swap(Example &obj);  // 声明swap()为友元函数
};

void swap(Example &obj) {  // 定义swap()函数
    int temp = obj.a;
    obj.a = obj.b;
    obj.b = temp;
}

int main() {
    Example obj(100, 200);
    obj.display();
    swap(obj);
    obj.display();
    return 0;
}

在上面的示例程序中,我们定义了一个名为 Example 的类,其中包含两个私有成员变量 a 和 b。我们还声明并定义了一个名为 swap 的友元函数,负责交换 Example 对象的两个成员。

在主函数中,我们首先创建了一个名为 obj 的 Example 对象,它包含了两个变量 a 和 b,然后将这些变量的值打印到屏幕上。接下来,我们调用 swap 函数来交换这两个变量的值,然后再次打印出变量的值。

程序的输出应该如下所示:

a: 100 b: 200
a: 200 b: 100

可以看到,swap 函数成功地交换了 obj 对象的两个成员变量的值。

总的来说,使用友元函数是一种很方便的方式,可以让你访问和操作类的私有和受保护成员。它们与类内的成员函数很相似,但是可以从类外部访问,并且并不属于类本身。