c++友元函数如何使用
时间: 2023-11-22 20:53:36 浏览: 91
C++中的友元函数是被定义在类外部但又可以访问类的私有成员的非成员函数。友元函数可以访问类的私有成员,但不是类的成员函数,因此它不能使用this指针。
友元函数的声明可以在类的任何地方,但通常在类的头文件中声明,在类的定义中实现。以下是一个简单的例子:
```cpp
class MyClass {
private:
int private_var;
friend void friend_func(MyClass& obj); // 声明友元函数
public:
MyClass(int var) : private_var(var) {}
void print_private_var() {
cout << private_var << endl;
}
};
void friend_func(MyClass& obj) {
cout << obj.private_var << endl; // 可以访问私有成员
}
int main() {
MyClass obj(42);
friend_func(obj); // 调用友元函数
obj.print_private_var(); // 通过成员函数访问私有成员
return 0;
}
```
在上面的例子中,我们声明了一个名为`friend_func`的友元函数,并将其作为类`MyClass`的友元函数。在`friend_func`中,我们可以直接访问`MyClass`的私有成员。在`main`函数中,我们创建了一个`MyClass`的对象,并调用`friend_func`和`print_private_var`函数以访问私有成员。
需要注意的是,友元函数不是类的成员函数,因此它们不能使用成员访问运算符`.`或箭头`->`来访问私有成员。相反,友元函数必须通过其参数来访问对象的私有成员。
阅读全文