#include <iostream>
using namespace std;
class CFatherSum //父类Sum
{
public:
CFatherSum(int iRec){cout<<"1,Constructing CFatherSum"<<iRec<<endl;}//构造函数成员初始化
};
class CFatherBru //父类Bru
{
public:
CFatherBru(int iRec){cout<<"2,Constructing CFatherBru"<<iRec<<endl;}//构造函数成员初始化
};
class CFatherObam //父类Obam
{
public:
//第一行用于对比默认构造
//CFatherObam(int iRec){cout<<"3,Constructing CFatherObam"<<iRec<<endl;}//构造函数成员初始化
CFatherObam(){cout<<"3,Constructing CFatherObam*"<<endl;}//构造函数成员初始化
};
class CSon:public CFatherSum,public CFatherBru,public CFatherObam //继承父Sum,Bru,Obam
{
public:
CSon(int iFirst,int iSec,int iThir,int iFor):CFatherSum(iFirst),m_bru(iFor),m_sum(iThir),CFatherBru(iSec)
{
//CFatherObam(iFor),m_obam(iFor) 非默认构造时,须派生构造传递构造参数
} private:
CFatherSum m_sum;
CFatherBru m_bru;
CFatherObam m_obam; }; //主函数
int main()
{
CSon son(,,,); getchar();
return ; }

结果:

结果分析:

构造参数次序先后如下:

1,派生类定义基类的顺序:从public CFatherSum到public CFatherBru到public CFatherObam

2,派生类内成员在类中声明的顺序:

CFatherSum m_sum;
CFatherBru m_bru;
CFatherObam m_obam;

延伸:析构函数次序相反,试验自行增加代码

最新文章

  1. HD2255奔小康赚大钱(最大权匹配模板)
  2. as自定义菜单。
  3. AngularJs学习笔记7——四大特性之模块化设计
  4. STM32驱动W25X64存储器
  5. jquery使用CSS3实现文字动画效果插件Textillate.js
  6. MVC 中获取Json数据
  7. 实验七 《FBG》—-小学生课后习题答案原型设计
  8. 数组排列组合问题——BACKTRACKING
  9. Java Arrays.sort源代码解析
  10. NoSuchMethodError: ... addOnCompleteCallback
  11. html5-css综合练习
  12. 阿里云help
  13. 批量修改mysql数据库引擎
  14. .NETCore分布式微服务站点设计(1)-概念图
  15. Jupyter notebook用法
  16. JavaScript插入节点小结
  17. java-spark的各种常用算子的写法
  18. DevOps实践
  19. js bom和dom
  20. spring集成redis,集成redis集群

热门文章

  1. [译]用R语言做挖掘数据《五》
  2. c#创建window服务
  3. mysql8.0遇到删除外键的错误
  4. JAVA基础之——JDK包分析concurrent
  5. 基于 java 【Web安全】文件上传漏洞及目录遍历攻击
  6. 关于VUE中 import 、 export 和 export default 的注意问题
  7. Redis实现分布式锁1
  8. java中的==、equals()、hashCode()源码分析(转载)
  9. 出售基于Html5的高性能GIS平台源码
  10. Android学习笔记(5)----启动 Theme.Dialog 主题的Activity时程序崩溃的解决办法