C++中的友元函数和友元类用于在类的外部访问类的私有成员。它们的使用如下:
友元函数:
在C++中,可以使用 friend
关键字声明一个函数为类的友元函数。这意味着该函数可以访问类的私有和受保护成员。友元函数不是类的成员函数,但可以访问类的非公有成员。
class MyClass {
private:
int privateVar;
public:
MyClass(int x) : privateVar(x) {}
friend void friendFunction(MyClass obj);
};
void friendFunction(MyClass obj) {
cout << "Friend function can access privateVar: " << obj.privateVar << endl;
}
友元类:
使用 friend
关键字,还可以将一个类声明为另一个类的友元类。这意味着被声明为友元类的类可以访问另一个类的私有成员。
class FriendClass {
public:
void accessPrivateMember(MyClass obj) {
cout << "Friend class can access privateVar: " << obj.privateVar << endl;
}
};
class MyClass {
private:
int privateVar;
friend class FriendClass;
public:
MyClass(int x) : privateVar(x) {}
};
通过这种方式,FriendClass
可以访问 MyClass
的私有成员。
总之,友元函数和友元类为C++中实现访问权限更灵活的机制。但需谨慎使用,以保持封装性和代码安全性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。