溫馨提示×

c++ class類友元函數怎么用

c++
小樊
87
2024-09-24 23:38:15
欄目: 編程語言

在C++中,類友元函數是一種特殊的函數,它可以訪問類的私有和保護成員。友元函數不是類的成員函數,因此它不受類的訪問控制規則的限制。

要聲明一個友元函數,可以在類定義中使用friend關鍵字。例如:

class MyClass {
    private:
        int privateVar;
    protected:
        int protectedVar;
    public:
        MyClass(int var) : privateVar(var), protectedVar(var) {}
        friend void accessPrivateMembers(MyClass& obj);
};

void accessPrivateMembers(MyClass& obj) {
    std::cout << "Private variable: " << obj.privateVar << std::endl;
    std::cout << "Protected variable: " << obj.protectedVar << std::endl;
}

在上面的示例中,accessPrivateMembers函數被聲明為MyClass類的友元函數。它可以訪問MyClass類的私有成員privateVar和保護成員protectedVar。

要調用友元函數,可以使用類對象作為參數。例如:

int main() {
    MyClass obj(10);
    accessPrivateMembers(obj);
    return 0;
}

輸出結果為:

Private variable: 10
Protected variable: 10

需要注意的是,友元函數不是類的成員函數,因此它不受類的訪問控制規則的限制。但是,友元函數也不能訪問類的私有和保護構造函數和析構函數。

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