C++ public、protected、private 继承方式的区别
2024-08-31 14:23:15
访问修饰符 public、protected、private,无论是修饰类内成员(变量、函数),还是修饰继承方式,本质上实现的都是可见性的控制。
Difference between private, public, and protected inheritance
class A {
public: int x;
protected: int y;
private: int z;
};
class B : public A {
// x is public
// y is protected
// z is not accessible from B
};
class C : protected A {
// x is protected
// y is protected
// z is not accessible from C
};
class D : private A // 'private' is default for classes
{
// x is private
// y is private
// z is not accessible from D
};
- 需要说明的是,类 B、C、D 的内存结构中均包含
x, y, z
(继承而来的成员),只是访问权限的不同罢了; - protected 修饰类内的成员,表示该成员仅对该类及其派生类可见;
- private 继承(class D : private A )使得所有成员都变为 private(父类中的 private 成员对子类不可见,哪怕是 public 继承),其子类均可不见,也即再有新的派生类继承 class D,成员函数的重写就失去了意义;
最新文章
- [Voice communications] 看得到的音频流
- 在SpringMVC框架下实现数据的国际化(即数据实现多国文字之间的转换)
- thinkPHP--SQL连贯操作
- Linux 文件描述符和重定向
- Scrum Meeting 7-20151209
- Qt 无法解析外部文件2001,2019之类的
- Linux:Vim
- GitHub 基本常用知识解答2
- DE1-SOC开发板上搭建NIOS II处理器运行UCOS II
- Android Activity初探
- hdu 1133 Buy the Ticket
- HTML5 <;Audio>;标签API整理(一)
- ajax相关
- boost解析XML方法教程
- postman传json串,以及postman官方文档
- 简单聊聊不可或缺的Nginx反向代理服务器--实现负载均衡【上篇】
- scrapy_移除内容中html标签
- 上传本地项目到Github
- java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类
- Python学习之装饰器进阶