c++

c++ class类友元函数怎么用

小樊
82
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
看了该问题的人还看了