溫馨提示×

C++友元函數如何處理靜態成員

c++
小樊
112
2024-11-09 01:09:27
欄目: 編程語言

在C++中,友元函數(friend function)可以訪問類的私有(private)和保護(protected)成員。但是,對于靜態成員,友元函數的訪問權限與普通成員函數相同,因為靜態成員屬于類本身,而不是類的實例。

以下是一個示例,展示了如何在友元函數中處理靜態成員:

#include <iostream>

class MyClass {
public:
    static int staticMember;

    MyClass() {
        std::cout << "MyClass constructor called" << std::endl;
    }

    ~MyClass() {
        std::cout << "MyClass destructor called" << std::endl;
    }

    friend void accessStaticMember(MyClass &obj);
};

int MyClass::staticMember = 10;

void accessStaticMember(MyClass &obj) {
    std::cout << "Accessing static member: " << MyClass::staticMember << std::endl;
}

int main() {
    MyClass obj;
    accessStaticMember(obj);
    return 0;
}

在這個示例中,我們定義了一個名為MyClass的類,其中包含一個靜態成員staticMember。我們還定義了一個友元函數accessStaticMember,它可以訪問MyClass的靜態成員。

main函數中,我們創建了一個MyClass對象obj,然后調用accessStaticMember函數來訪問靜態成員。輸出結果如下:

MyClass constructor called
Accessing static member: 10
MyClass destructor called

這表明友元函數可以像普通成員函數一樣訪問靜態成員。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女