博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
继承与派生
阅读量:6765 次
发布时间:2019-06-26

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

hot3.png

友元关系不能继承。

如果基类定义了静态成员,则整个继承层次中只有一个这样的成员。无论从基类派生出多少个派生类,每个静态成员只有一个实例

静态成员遵循常规访问控制:如果静态成员在基类中为私有的,则派生类不能访问它。如果该静态成员在基类是共有的,则基类可以访问它,派生类也可以访问它。

 

赋值兼容规则

赋值兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。

通过公有继承,派生类得到了基类中除构造函数,析构函数之外的所有成员。这样,共有派生类实际上就具有了基类的所有功能,凡是基类能解决的问题,共有派生类都可以解决。

①派生类的对象可以赋值给基类对象

②派生类的对象可以初始化基类的引用

③派生类的对象的地址可以复制给指向基类的指针

class Base{};   //基类class Derive:public Base{};  //共有派生类Base b, *pb;      //定义基类对象Derive d;         //定义派生类对象

这时,支持下面三种操作:

b = d;  //派生类对象赋值给基类,复制基类继承部分Base &rb = d;  //基类引用到派生类对象pb = &d; //基类指针指向派生类对象

赋值兼容规则是C++多态性的重要基础之一。

 

二义性问题

使用成员名限定可以消除二义性,基本形式为:

   对象名.基类名::成员名

   对象指针名->基类名::成员名

虚基类

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3749576/blog/1600150

你可能感兴趣的文章
golang 并发二(调度)
查看>>
Scala的bounds
查看>>
Zookeeper之——关于Zookeeper的那些事
查看>>
LAMP- CentOS 7平台三机FastCGI模型
查看>>
解决docker pull镜像速度慢的问题
查看>>
扒一扒JVM的垃圾回收机制,下次面试你准备好了吗
查看>>
七周二次课(5月7日)
查看>>
我的友情链接
查看>>
MySQL删除idb文件引发的思考
查看>>
SQL Server 2012 管理新特性:AlwaysOn 可用性组
查看>>
lamp-安装脚本-修订版1
查看>>
linux 之lvm 逻辑卷管理详解
查看>>
什么是序列化?为什么要序列化?
查看>>
iOS设置frame的简单方法
查看>>
复合型序列的分解预测
查看>>
CentOS 6.3 安装配置drbd8.3.13+heartbeat3.0.4
查看>>
linux 下动态链接库的制作与使用
查看>>
关于hadoop配置hosts文件的问题
查看>>
计算机操作系统发展历史
查看>>
scp
查看>>