首先由三个类分别为DateType(日期类)、TimeType(时间类)、DateTimeType(日期时间内)。详细代码例如以下:

#include <iostream>
using namespace std; class DateType
{
int year,month,day;
public:
DateType(int year = 2000,int month = 12,int day = 1)
{
this->year = year;
this->month = month;
this->day = day;
cout<<"DateType的构造函数"<<endl;
} void display()
{
cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
} ~DateType()
{
cout<<"DateType的析构函数"<<endl;
} }; class TimeType
{
int h,m,s;
public:
TimeType(int h = 12,int m = 30,int s = 30)
{
this->h = h;
this->m = m;
this->s = s;
cout<<"TimeType的构造函数"<<endl;
} void display()
{
cout<<h<<"时"<<m<<"分"<<s<<"秒"<<endl;
} ~TimeType()
{
cout<<"TimeType的析构函数"<<endl;
}
}; class DateTimeType:public DateType,public TimeType
{
public:
DateTimeType(int y=2014,int month=5,int d=12,int h=17,int m=2,int s=10):TimeType(h,m,s),DateType(y,month,d){}
void display()
{
DateType::display();
TimeType::display();
}
}; int main()
{
DateTimeType dt;
dt.display();
return 0;
}

最后的结果例如以下:

最后分析一下我在这个实验中学到了什么:

1.派生类运行例如以下:

a.调用基类的构造函数,调用顺序是它们被继承时声明的基类的顺序。。

b.调用派生类的构造函数

c.运行派生类的析构函数

d.运行基类的析构函数(顺序相反)

2.假设一个类中的构造函数如DateType(int year = 2000,int month = 12,int day = 1),声明对象时能够使用DateType d来声明,尽管并没有无參的构造函数。而假设加入�了无參的构造函数,则会编译错误。

3.一个类继承多个类时,构造函数调用的顺序跟声明时(比如class DateTimeType:public DateType,public TimeType)一致,而不是看(DateTimeType(int y=2014,int month=5,int d=12,int h=17,int m=2,int s=10):TimeType(h,m,s),DateType(y,month,d){},这里的顺序没有影响)。

4.假设继承构造时写成这样:

	DateTimeType(int y=2014,int month=5,int d=12,int h=17,int m=2,int s=10):TimeType(h,m,s)
{
DateType::DateType(y,month,d);
}

结果中日期为2000年12月10日,说明必须使用參数列表。这里实际上调用的是DateType的默认无參构造函数,不信能够将函数写成这样

	DateType(int year,int month,int day)
{
this->year = year;
this->month = month;
this->day = day;
cout<<"DateType的构造函数"<<endl;
} DateType()
{
cout<<"DateType的无參构造函数"<<endl;
}

然后结果就成下图这样了,这充分说明了:“要是使用基类的带參数的构造函数,必须使用參数列表,否则仅仅能调用基类的无參构造函数”。



C++类的继承实例的更多相关文章

  1. php面向对象:类的继承实例讲解

    什么是类的继承?说白了,我觉得就是提高代码使用效率的.下面我就给大家介绍下继承.大理石平台维修 类的继承概念 子类继承父类的所有成员变量个方法,包括构造方法,当子类被实例化时,php会现在子类中查询构 ...

  2. js原生继承之——类式继承实例(推荐使用)

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  3. python自动化测试学习笔记-7面向对象编程,类,继承,实例变量,邮件

    面向对象编程(OOP)术语: class TestClass(object):   val1 = 100       def __init__(self):     self.val2 = 200   ...

  4. Class的使用,构造方法,实例属性和实例方法,静态属性和静态方法,this和super关键字,类的继承

    s6新增了一种定义对象实例的方法,Class(类)这个概念,作为对象的模板.class可以看作只是一个语法糖,通过class关键字,可以定义类.让对象原型的写法更加清晰.更像面向对象编程的语法. 一. ...

  5. Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

    一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强…” 什么是面 ...

  6. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  7. JS原型继承和类式继承

    前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...

  8. C#类的继承,方法的重载和覆写

    在网易云课堂上看到唐大仕老师讲解的关于类的继承.方法的重载和覆写的一段代码,注释比较详细,在此记下以加深理解. 小总结: 1.类的继承:允许的实例化方式:Student t=new Student() ...

  9. Lua面向对象----类、继承、多继承、单例的实现

    (本文转载)学习之用,侵权立删! 原文地址   http://blog.csdn.net/y_23k_bug/article/details/19965877?utm_source=tuicool&a ...

随机推荐

  1. [小技巧] Python 脚本暴力破解 HC2600 机顶盒管理密码

    家里最近接入了广电有线电视,配了三个创维 HC2600 机顶盒,并且每个机顶盒还带有无线路由器功能. 免费赠送 Internet 接入服务倒也没什么,不过机顶盒内置的 WIFI 实在有点寒酸:只支持 ...

  2. C语言union关键字

    union 关键字的用法与struct 的用法非常类似. union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间 ...

  3. Ruby与sass 与compass安装

     Ruby安装 windows平台下使用Rubyinstaller安装 1) 下载Rubyinstaller 2) 安装Rubyinstaller 记得勾选 add ruby executables ...

  4. HTML5框架、背景和实体、XHTML的使用规范

    HTML5框架 cols :竖排 rows:横排,frameset frame已弃用  iframe仍保留使用.用法: Target属性: HTML5实体 XHTML的使用规范

  5. eclipse频繁崩溃退出

    1.出现下面的崩溃情况,并且改变内存大小都没有用,而且总是生成下面两个错误日志文件: 解决: 在eclipse.ini文件里面添加一行 -XX:-UseLoopPredicate 2.eclipse崩 ...

  6. Oracle 如何让别人能够连接到你的数据库

    Oracle 初步 --Oracle的一些关键字 i和g只是版本的代号,指oracle运用的技术i代表Internet就是互联网技术g代表grid就是网格技术现在出的最新版是c就是cloud也就是云技 ...

  7. SQL Server系统表讲解

    1. sysobjects http://www.cnblogs.com/atree/p/SQL-Server-sysobjects.html   2.syscomments http://www.c ...

  8. scala学习笔记-集合

    变长数组:数组缓冲 Scala中对于那种长度会变的数组的数据结构为ArrayBuffer. import scala.collection.mutable.ArrayBuffer; // 一个空的数组 ...

  9. Sql Server导出表结构Excel

    SELECT 表名 Then D.name Else '' End, 表说明 Then isnull(F.value,'') Else '' End, 字段序号 = A.colorder, 字段名 = ...

  10. java下socket传图片

    package cn.stat.p4.ipdemo; import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...