#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. Linux Shell脚本编程--Linux特殊符号大全

    Linux Shell脚本编程--Linux特殊符号大全 linux_shell 特殊符号的介绍 2011

  2. CA单向认证和双向认证的区别?

    1:单向认证,内容会被串改吗?

  3. javascript创建对象之原型模式(三)

    少废话,先上代码: function Human() { } Human.prototype.name = "成吉思汗"; Human.prototype.sex = " ...

  4. Maven 添加jdk编译插件

    问题描述: 默认情况下,eclipse的maven项目使用jdk1.5编译,而我们的jdk为1.8每次更改jdk1.5之后,只要maven项目已更新,eclipse就会自动的回到jdk1.8结局方法: ...

  5. 使用nproxy代理本地服务到内网

    前端开发中:很多场景需要在局域网下的其他手机或设备查看网页, 问题来了, web服务部署在本机的某个端口上(8080),只能通过本机浏览器访问,  怎样能让局域网下的其他设备也访问呢?可能你会说 关闭 ...

  6. 显式锁(四)Lock的等待通知机制Condition

       任意一个Java对象,都拥有一组监视器方法(定义在根类Object上),主要包括:wait( ).wait(long timeout).notify().notifyAll()方法:这些方法与关 ...

  7. 用javac编译servlet类出现问题

    本人写了一个关于servlet的webapp,但是在用javac编译的时候,只是单纯的将jsp-api.jar和servlet-api.jar拷贝放在了其目录下面,然后利用命令行 javac XXX. ...

  8. selenium自动化测试遇到的问题积累--持续积累中

    引言: 在做UI自动化测试过程中,总是会遇到各种问题,而解决问题总是会花费一些时间和心思,但是解决后对于自己就是一种成长,持续积累,当可能遇到的问题都被你遇到过,并且都知道解决办法,这就是一种经验的价 ...

  9. PHP图像 因其本身有错无法显示

    昨天终于将客户的一个网站迁移至虚拟主机上,满怀希望的敲入网址.唰的一声,网站很轻松的被打开了. 心里那个高兴啊~~~ 咦,怎么产品图片都没有显示出来.一块块都是空白.敲入img src对应的地址,看看 ...

  10. C++Primer笔记-----day08

    ==========================================================================day08===================== ...