溫馨提示×

C++友元函數(shù)怎樣聲明和使用

c++
小樊
81
2024-11-09 00:57:27
欄目: 編程語言

在C++中,友元函數(shù)(friend function)是一個非成員函數(shù),它可以訪問類的私有(private)和保護(protected)成員

  1. 聲明友元函數(shù): 在類定義中,使用friend關(guān)鍵字聲明一個函數(shù)為類的友元函數(shù)。通常,友元函數(shù)聲明在類定義的內(nèi)部,但也可以放在類定義的外部。
class MyClass {
private:
    int privateVar;

public:
    MyClass(int value) : privateVar(value) {}

    // 聲明友元函數(shù)
    friend void myFriendFunction(MyClass &obj);
};

或者

class MyClass {
private:
    int privateVar;

public:
    MyClass(int value) : privateVar(value) {}

    // 在類定義外部聲明友元函數(shù)
    friend void myFriendFunction(MyClass &obj);
};
  1. 定義友元函數(shù): 在類外部定義友元函數(shù),不需要使用friend關(guān)鍵字。友元函數(shù)可以訪問類的私有和保護成員。
void myFriendFunction(MyClass &obj) {
    std::cout << "Private variable: " << obj.privateVar << std::endl;
}
  1. 使用友元函數(shù): 創(chuàng)建一個類的對象,然后通過該對象調(diào)用友元函數(shù)。
int main() {
    MyClass obj(42);
    myFriendFunction(obj);  // 輸出:Private variable: 42
    return 0;
}

注意:友元函數(shù)不是類的成員函數(shù),因此它不能訪問類的this指針。同時,友元函數(shù)不是類的成員函數(shù),所以它不能使用類的命名空間。

0