C++语言笔记系列之十六——赋值兼容规则&多继承的二义性
1.赋值兼容规则
(1)派生类对象能够给基类对象赋值,这样的情况下派生类对象将从基类继承的成员的值赋值给一个基类对象;可是不同意将一个基类的对象赋值给一个派生类。
(2)能够将派生类对象的地址赋给基类指针,使基类指针指向派生类对象,通过基类指针引用成员时仅仅能够引用派生类从基类继承而来的成员,而不同意引用派生类的新成员。
(3)引用与指针同样。
2.多继承
(1)一个派生类从两个以上的基类中去继承。
(2)说明:
class 派生类名:继承方式 基类1, 继承方式 基类2,......
{派生类成员的表示};
(3)派生类构造函数的调用
A.调用
派生类名(总參数表):基类1(參数),基类2(參数),......子对象1(參数)。子对象2(參数),......
{派生类构造}
注:同层基类构造函数的调用顺序与派生类构造函数中说明的基类构造顺序无关,而必须严格依照派生类定义时的继承顺序调用。相同,析构函数的调用顺序与构造函数的调用顺序严格相反。
3.多继承中的二义性
(1)派生类在继承基类时。每一个成员函数的函数名最好唯一。
(2)若派生类在进行多继承时两个以上的基类中含有同名成员函数。且都能够訪问,在派生类中对基类成员訪问时。会出现訪问时的二义性问题。
情况1:两个基类中有同名成员,派生类中也有同名函数,不会出现二义性。採取就近原则,訪问派生类中的同名成员函数。
情况2:两个基类中有同名成员,且派生类中没有,在派生类中调用同名成员时出现二义性的问题。解决的方法是:加类的作用域。
4.在下面三种情况中不会出现二义性:
(1)基类和派生类都有同名成员,不会出现二义性,会直接訪问派生类。
(2)若派生类中没有。仅仅有一个基类中有,这样也不会出现二义性。
(3)若基类中同名成员和派生类同名成员參数个数不同或者类型不同也不会出现二义性。
C++语言笔记系列之十六——赋值兼容规则&多继承的二义性的更多相关文章
- C++语言笔记系列之十二——C++的继承
C++的继承 1.继承方式 public(公有继承) 派生类中的成员能够訪问基类的public成员和protected成员,但不能訪问基类的private成员. 派生类的对象仅仅能訪问基类的publi ...
- C++语言笔记系列之十八——虚函数(1)
1.C++中的多态 (1)多态性:同一个函数的调用能够进行不同的操作,函数重载是实现多态的一种手段. (2)联编:在编译阶段进行联接.即是在编译阶段将一个函数的调用点和函数的定义点联接起来. A.静态 ...
- C++语言笔记系列之十——静态成员
1.静态成员 (1)由keywordstatic修饰 静态变量定义语句在编译阶段就运行,运行过程中不再运行. (2)分类:静态数据成员.静态成员函数. (3)静态成员时类的全部对象共享的成员,而不是某 ...
- C++中的继承详解(3)作用域与重定义,赋值兼容规则
作用域与同名隐藏 一样的,先上代码 1 class A 2 { 3 public: 4 int a_data; 5 void a() 6 { 7 cout << "A" ...
- C++中的继承(3)作用域与重定义,赋值兼容规则
作用域与重定义(同名隐藏) 一样的,先上代码 1 class A 2 { 3 public: 4 int a_data; 5 void a() 6 { 7 cout << "A& ...
- C++中的继承(3)作用域与重定义,赋值兼容规则
1.作用域与重定义(同名隐藏) 一样的,先上代码 1 class A 2 { 3 public: 4 int a_data; 5 void a() 6 { 7 cout << " ...
- 以太坊系列之十六: 使用golang与智能合约进行交互
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...
- 以太坊系列之十六:golang进行智能合约开发
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...
- Web 前端开发人员和设计师必读精华文章【系列二十六】
<Web 前端开发精华文章推荐>2014年第5期(总第26期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...
随机推荐
- Python类和人类
Python中的类 俗话说,物以类聚,人以群分,类是什么,类就是一组相同属性的集合.下面来结合人,探讨Python中类和人类的关系. 首先,我们定义一个人的类,如下: class People(obj ...
- 站点的安全防范都是后端的职责?非也,Web前端安全同样不可忽视
前言 随着网络的快速普及,网络安全问题的受害者不再只是政府.企业等集体,每一个接触网络的普通人都有可能成为网络攻击的受害者.随着网络的普及,黑客进行网络攻击的手段越来也多,越来越复杂.以网站的攻击为例 ...
- ASP.NET:插件化机制
概述 nopCommerce的插件机制的核心是使用BuildManager.AddReferencedAssembly将使用Assembly.Load加载的插件程序集添加到应用程序域的引用中.具体实现 ...
- 洛谷P3527 [POI2011]MET-Meteors [整体二分]
题目传送门 Meteors 格式难调,题面就不妨放了. 分析: 一道整体二分的练手题. 就是一般的整体二分的套路,但是要注意,将修改和询问加入队列的时候要先加修改再加询问.另外,博主代码打得太丑,常数 ...
- C# 操作 access 数据库
随笔: (1) 命名空间 using System.Data.OleDb; (2) 连接字符串 private staticstring connStr = @"Provider= ...
- [ 原创 ]Centos 7.0下启动 Tomcat8.5.15
1.打开8080端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 2.重启防火墙 firewall-cmd --relo ...
- 机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者
python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/l ...
- wmware虚拟系统光盘的问题
拿到系统盘,需要通过UltralSO工具中:工具-制作光盘映像文件,做成系统iso文件,而不是直接拷贝系统盘里的文件压缩成iso格式. 主要原因:主要是系统盘有一个引导区,win系统复制光盘时,是不能 ...
- 凡信(超仿微信Android版)开源了,内有源码下载 -
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 凡信(超仿微信Android版)开源了,内有源码下载 - IM Geek开发者社区-移动 ...
- bzoj 1337 最小圆覆盖
/************************************************************** Problem: 1337 User: idy002 Language: ...