C++友元函數(shù)支持全局函數(shù)嗎

c++
小樊
83
2024-11-09 00:58:26
欄目: 編程語言

在C++中,友元函數(shù)(friend function)是一種特殊的函數(shù),它可以訪問類的私有(private)和保護(hù)(protected)成員。友元函數(shù)可以是全局函數(shù),也可以是類的成員函數(shù)。但是,通常情況下,友元函數(shù)被用作全局函數(shù),以便訪問多個(gè)類的私有和保護(hù)成員。

以下是一個(gè)使用全局友元函數(shù)的示例:

#include <iostream>
using namespace std;

class MyClass {
private:
    int myVar;

public:
    MyClass(int var) : myVar(var) {}

    // 聲明全局友元函數(shù)
    friend void printMyVar(const MyClass& obj);
};

// 定義全局友元函數(shù)
void printMyVar(const MyClass& obj) {
    cout << "myVar: " << obj.myVar << endl;
}

int main() {
    MyClass obj(10);
    printMyVar(obj); // 輸出:myVar: 10
    return 0;
}

在這個(gè)示例中,我們聲明了一個(gè)名為printMyVar的全局友元函數(shù),它可以訪問MyClass類的私有成員myVar。在main函數(shù)中,我們創(chuàng)建了一個(gè)MyClass對(duì)象并調(diào)用了printMyVar函數(shù)來輸出myVar的值。

0