博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++中的公有继承,私有继承和保护继承
阅读量:2383 次
发布时间:2019-05-10

本文共 665 字,大约阅读时间需要 2 分钟。

首先在基类中,如果是private修饰的成员和函数,肯定是不能被派生类所继承。

而public和protected修饰的部分可以被继承。

一般情况下,默认是public继承,当派生类继承基类之后,继承的public部分属性仍是public,继承的protected部分属性仍然是pro.

如果是私有继承,继承之后,首先,基类中的private的部分仍然拿不到,拿到的public和pro部分属性变成private.

如果是保护继承,继承之后,拿到的public和pro部分属性变成pro.

转载来源:

C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。

struct能包含成员函数吗? 能!
struct能继承吗? 能!!
struct能实现多态吗? 能!!!
 

既然这些它都能实现,那它和class还能有什么区别?

最本质的一个区别就是默认的访问控制: 

默认的继承访问权限

继承上来说,struct是public的,class是private的。

你可以写如下的代码:
struct A
{
  char a;
};
struct B : A
{
  char b;
};

这个时候B是public继承A的。

如果都将上面的struct改成class,那么B是private继承A的。这就是默认的继承访问权限。 

所以我们在平时写类继承的时候,通常会这样写:

class B : public A

就是为了指明是public继承,而不是用默认的private继承。

 

你可能感兴趣的文章
PYTHON测试脚本
查看>>
sqlserver采用link server方式远程连接ORACLE
查看>>
GRID卸载及重新安装
查看>>
各种报错处理方法
查看>>
在duplicate时,出现监听BLOCKED的情况,导致监听自动关闭
查看>>
System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本
查看>>
SQLSERVER迁移数据至ORACLE软件下载
查看>>
System.Exception:System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本
查看>>
DG归档日志断档时间过长如何处理(DG全库恢复)
查看>>
CENTOS 7 使用ORACLE VM VirtualBox 创建两个虚拟网卡注意事项
查看>>
ASM单实例安装后,需要手动设置ASM的参数文件
查看>>
(grid重装后图形界面报错)ASM磁盘组字符界面配置
查看>>
MYSQL主从搭建5.6.38
查看>>
ORACLE-LINUX环境字符界面单实例安装
查看>>
MYSQL各版本官网下载
查看>>
POSTGRESQL10.3源码安装主从搭建 pgpoolii + keepalive 高可用(未成功,实验中)
查看>>
DG-duplicate操作注意事项(各种报错应对方法)
查看>>
VMWARE复制虚拟机之后,需重新配置网卡(CENTOS 6)
查看>>
LINUX图形化安装ORACLE 前置条件
查看>>
SQLSERVER导出TXT文本文件,ORACLE SQL LOADER导入TXT文本文件
查看>>