阅读量:66
在C++中,友元类(friend class)是一种特殊的类关系,允许一个类访问另一个类的私有(private)和保护(protected)成员。当一个类继承自另一个类时,友元类的表现如下:
- 如果基类(base class)是友元类,那么派生类(derived class)将自动成为基类的友元类。这意味着派生类可以访问基类的所有私有和保护成员。
class Base {
public:
friend class Derived; // 派生类自动成为基类的友元类
};
class Derived : public Base {
public:
void accessBaseMembers() {
// 可以访问基类的私有和保护成员
}
};
- 如果派生类是友元类,那么它不会自动成为基类的友元类。要在派生类中访问基类的私有和保护成员,您需要在派生类中显式地将基类声明为友元类。
class Base {
private:
int privateMember;
};
class Derived : public Base {
public:
friend class Derived; // 将基类声明为派生类的友元类
void accessBaseMembers() {
// 可以访问基类的私有和保护成员
}
};
需要注意的是,过度使用友元类可能导致代码结构变得复杂,破坏封装原则。在实际编程中,应谨慎使用友元类。