CPP公有继承、保护继承以及私有继承

在c++的继承控制中,有三种不同的控制权限,分别是public、protected和private。定义派生类时,若不显示加上这三个关键字,就会使用默认的方式,用struct定义的类是默认public继承,class定义的类是默认private继承。

1、公有继承

使用public继承时,派生类内部可以访问基类中public和protected成员,但是类外只能通过派生类的对象访问基类的public成员。

​ (1)基类的public成员在派生类中依然是public的。

​ (2)基类中的protected成员在派生类中依然是protected的。

​ (3)基类中的private成员在派生类中不可访问。

2、保护继承

使用protected继承时,派生类内部可以访问基类中public和protected成员,类外不能通过派生类的对象访问基类的成员(可以在派生类中添加公有成员函数接口间接访问基类中的public和protected成员)。

​ (1)基类的public成员在派生类中变为protected成员。

​ (2)基类的protected成员在派生类中依然是protected成员。

​ (3)基类中的private成员在派生类中不可访问。

3、私有继承

使用private继承时,派生类内部可以访问基类中public和protected成员,并且类外也不能通过派生类的对象访问基类的成员(可以在派生类中添加公有成员函数接口间接访问基类中的public和protected成员)。

​ (1)基类的public成员在派生类中变成private成员。

​ (2)基类的protected成员在派生类中变成private成员。

​ (3)基类的private成员在派生类中不可访问。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容