C++ 如何使用友元类
时间: 2024-06-10 16:09:52 浏览: 83
友元类是指在一个类中,可以访问另一个类的私有成员和保护成员。使用友元类可以实现一些特殊的功能,如让两个类之间互相访问私有成员。下面是使用友元类的一些基本步骤:
1. 声明友元类
在要访问另一个类的私有成员或保护成员的类中,需要声明另一个类为友元类。例如:
```c++
class B;
class A {
public:
void func(B& b);
private:
int x;
friend class B;
};
```
在上面的例子中,类A中声明了类B为友元类,这样类B就可以访问类A中的私有成员x。
2. 定义友元类
在被声明为友元类的类中,需要定义友元类。例如:
```c++
class A;
class B {
public:
void func(A& a);
private:
int y;
friend class A;
};
void B::func(A& a) {
a.x = 10; // 访问类A的私有成员x
}
```
在上面的例子中,类B中定义了一个函数func,参数是类A的引用。由于类A声明了类B为友元类,因此在函数func中可以访问类A的私有成员x。
3. 使用友元类
使用友元类很简单,只需要在需要访问私有成员或保护成员的地方调用友元类中的函数即可。例如:
```c++
int main() {
A a;
B b;
b.func(a); // 访问类A的私有成员x
return 0;
}
```
在上面的例子中,创建了类A的对象a和类B的对象b。在main函数中调用了类B中的函数func,传入了类A的对象a作为参数,这样就可以访问类A的私有成员x了。
需要注意的是,虽然使用友元类可以访问另一个类的私有成员和保护成员,但这并不是一个好的设计习惯。友元类破坏了类的封装性,会导致代码的可维护性变差,因此应该尽量避免使用友元类。
阅读全文