#include <iostream.h>
//基类CBase
class CBase
{
int a;
public:
CBase(int na)
{
a=na;
cout<<"CBase constructor! ";
}
~CBase(){cout<<"CBase deconstructor! ";}
int GetA(){return a;}
}; //CBase的派生类CDerive
class CDerive : public CBase
{
int b;
public:
//将参数na传递给基类CBase
CDerive(int nb,int na):CBase(na)
{
b=nb;
cout<<"CDerive constructor! ";
}
~CDerive(){cout<<"CDerive deconstructor! ";}
int GetB(){return b;}
};
//CDerive的派生类CSubDerive
class CSubDerive : public CDerive
{
int c;
public:
//向直接基类传递参数,不负责向间接基类传递参数
CSubDerive(int nc,int nb,int na):CDerive(nb,na)
{
c=nc;
cout<<"CSubDerive constructor! ";
}
~CSubDerive(){cout<<"CSubDerive deconstructor! ";}
int GetC(){return c;}
void show()
{
//因为是公有继承,子派生类可以访问其父类和父类的父类的公有成员函数
cout<<"int the subderive class object : ";
cout<<"a = "<<GetA()<<endl;
cout<<"b = "<<GetB()<<endl;
cout<<"c = "<<GetC()<<endl;
}
}; void main()
{
CSubDerive obj(30,20,10); cout<<"call the display function of the object: ";
obj.show(); cout<<" call the interface function of the object: ";
cout<<"a = "<<obj.GetA()<<endl;
cout<<"b = "<<obj.GetB()<<endl;
cout<<"c = "<<obj.GetC()<<endl;
} 分析:
1.运行结果如下:

  

【c++】多层次继承类对象的构造函数参数的传递方法的更多相关文章

  1. c# abstract抽象类与继承类子类的构造函数_base

    http://blog.itpub.net/9240380/viewspace-718054/ http://blog.163.com/cloud_thegreat/blog/static/10367 ...

  2. java继承的对象中构造函数的调用顺序

    建立两个继承关系的对象 public class Machine { public String machieNameString; public Machine() { System.out.pri ...

  3. C++中一个类(非继承类)对象,所占内存空间大小

    离职后在家里带了半年多了,这半年多里没有编写过一行代码,倒是看过一些书,但是差不多也都是囫圃吞枣.房子也快要装修,也得赶快找一个工作了,不然养车,还要玩摄影,没收入的日子真是不好过啊.呵呵. 按惯例, ...

  4. js对象、构造函数、命名空间、方法、属性

     <script language="javascript">   var myNameSpace = new Object(); //构造一个命名 空间myCla ...

  5. 关于c++11中static类对象构造函数线程安全的验证

    在c++11中,static静态类对象在执行构造函数进行初始化的过程是线程安全的,有了这个特征,我们可以自己动手轻松的实现单例类,关于如何实现线程安全的单例类,请查看c++:自己动手实现线程安全的c+ ...

  6. Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)

    上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...

  7. Python 类对象去重

    注:set 对类对象去重,在于重写__eq__方法和__hash__方法,如果没有重写__hash__会导致People类对象不是可hash的 #!/usr/bin/env python # -*- ...

  8. cout显示Mat类对象报错Access Violation

    AV(Access Violation)错误:非法访问. image_match.exe 中的 0x0000002a 处有未经处理的异常: 0xC0000005: Access violation 程 ...

  9. 一篇文章看懂java反射机制(反射实例化对象-反射获得构造方法,获得普通方法,获得字段属性)

    Class<?> cls = Class.forName("cn.mldn.demo.Person"); // 取得Class对象传入一个包名+类名的字符串就可以得到C ...

随机推荐

  1. JAVA URI URL 区别

    String urlString = "http://192.168.21.77:8080/swp/mainPage?aa=11&bb%3D22"; URI uri = U ...

  2. 1062 Talent and Virtue (25 分)

    1062 Talent and Virtue (25 分) About 900 years ago, a Chinese philosopher Sima Guang wrote a history ...

  3. skopt学习之路1-函数介绍:dummy_minimize

    def dummy_minimize(func,dimensions,n_calls=100, x0=None, y0=None, random_state=None, verbose=False, ...

  4. Thread 1 cannot allocate new log的问题分析 (转载)

    Thread 1 cannot allocate new log的问题分析 发生oracle宕机事故,alert文件中报告如下错误: Fri Jan 12 04:07:49 2007Thread 1 ...

  5. 开发组件:Supervisor

    Supervisor安装与配置(Linux/Unix进程管理工具) https://blog.csdn.net/xyang81/article/details/51555473 https://www ...

  6. Fork-Join 原理深入分析(二)

      本文是将 Fork-Join 复杂且较为庞大的框架分成5个小点来分析 Fork-Join 框架的实现原理,一个个点地理解透 Fork-Join 的核心原理. 1. Frok-Join 框架的核心类 ...

  7. DOM事件机制(事件捕获和事件冒泡和事件委托)

    内容: 1.事件复习 2.事件冒泡与事件捕获 3.事件委托 1.事件复习 (1)事件 事件是用来处理响应的一个机制,这个响应可以来自于用户(点击, 鼠标移动, 滚动), 也可以来自于浏览器 下面的链接 ...

  8. js-传送file

    这是选择文件的标签 <input type="file" class="add-image-input"> 这是js实现传输文件 var addIm ...

  9. python第一个爬虫的例子抓取数据到mysql,实测有数据

    python3.5 先安装库或者扩展 1 requests第三方扩展库 pip3 install requests 2 pymysql pip3 install pymysql 3 lxml pip3 ...

  10. OpenACC 与 CUDA 的相互调用

    ▶ 按照书上的代码完成了 OpenACC 与CUDA 的相互调用,以及 OpenACC 调用 cuBLAS.便于过程遇到了很多问题,注入 CUDA 版本,代码版本,计算能力指定等,先放在这里,以后填坑 ...