c++继承公共私有保护
时间: 2023-06-29 09:10:29 浏览: 114
C/C++ 公有继承、保护继承和私有继承的对比详解
5星 · 资源好评率100%
C++中的继承有三种访问控制权限:公共继承、私有继承和保护继承。
1. 公共继承(public inheritance):
公共继承是最常用的一种继承方式。在公共继承中,基类的公共成员和保护成员都可以被派生类访问,而基类的私有成员不能被派生类访问。
例如:
```
class Base {
public:
int public_var;
protected:
int protected_var;
private:
int private_var;
};
class Derived : public Base {
public:
void func() {
public_var = 1; // 可以访问基类的公共成员
protected_var = 2; // 可以访问基类的保护成员
//private_var = 3; // 不能访问基类的私有成员
}
};
```
2. 私有继承(private inheritance):
私有继承是一种不常用的继承方式。在私有继承中,基类的公共成员和保护成员都变成了派生类的私有成员,不能被外部访问。
例如:
```
class Base {
public:
int public_var;
protected:
int protected_var;
private:
int private_var;
};
class Derived : private Base {
public:
void func() {
public_var = 1; // 不能访问基类的公共成员
protected_var = 2; // 不能访问基类的保护成员
//private_var = 3; // 不能访问基类的私有成员
}
};
```
3. 保护继承(protected inheritance):
保护继承是介于公共继承和私有继承之间的一种继承方式。在保护继承中,基类的公共成员和保护成员都变成了派生类的保护成员,不能被外部访问。
例如:
```
class Base {
public:
int public_var;
protected:
int protected_var;
private:
int private_var;
};
class Derived : protected Base {
public:
void func() {
public_var = 1; // 不能访问基类的公共成员
protected_var = 2; // 可以访问基类的保护成员
//private_var = 3; // 不能访问基类的私有成员
}
};
```
阅读全文