友元函数

在C++中,友元函数是一个特殊的函数,它可以在类的内部访问类的私有和保护成员。通常,只有类的成员函数可以访问类的私有和保护成员。但是,通过将函数声明为友元,可以允许其他函数(包括非成员函数)访问这些成员。

友元函数可以是全局函数、另一个类的成员函数,或者当前类的成员函数。当友元函数是当前类的成员函数时,它不仅可以访问类的私有和保护成员,还可以访问类的所有成员,包括私有和保护的。

以下是一个使用友元函数的简单示例:

#include <iostream>

class MyClass {
public:
    MyClass(int value) : m_value(value) {}

    // 声明一个友元函数
    friend void printValue(MyClass obj);

private:
    int m_value;
};

// 定义一个全局函数,作为友元函数
void printValue(MyClass obj) {
    std::cout << "Value: " << obj.m_value << std::endl;
}

int main() {
    MyClass obj(10);
    printValue(obj); // 调用友元函数
    return 0;
}

在这个示例中,MyClass类有一个私有成员m_value。由于printValue函数被声明为MyClass的友元,它能够访问m_value成员。在main函数中,我们创建了一个MyClass对象并调用了printValue函数,该函数打印出对象的值。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务