C++类的继承实例
首先由三个类分别为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++类的继承实例的更多相关文章
- php面向对象:类的继承实例讲解
什么是类的继承?说白了,我觉得就是提高代码使用效率的.下面我就给大家介绍下继承.大理石平台维修 类的继承概念 子类继承父类的所有成员变量个方法,包括构造方法,当子类被实例化时,php会现在子类中查询构 ...
- js原生继承之——类式继承实例(推荐使用)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- python自动化测试学习笔记-7面向对象编程,类,继承,实例变量,邮件
面向对象编程(OOP)术语: class TestClass(object): val1 = 100 def __init__(self): self.val2 = 200 ...
- Class的使用,构造方法,实例属性和实例方法,静态属性和静态方法,this和super关键字,类的继承
s6新增了一种定义对象实例的方法,Class(类)这个概念,作为对象的模板.class可以看作只是一个语法糖,通过class关键字,可以定义类.让对象原型的写法更加清晰.更像面向对象编程的语法. 一. ...
- Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法
一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强…” 什么是面 ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- JS原型继承和类式继承
前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...
- C#类的继承,方法的重载和覆写
在网易云课堂上看到唐大仕老师讲解的关于类的继承.方法的重载和覆写的一段代码,注释比较详细,在此记下以加深理解. 小总结: 1.类的继承:允许的实例化方式:Student t=new Student() ...
- Lua面向对象----类、继承、多继承、单例的实现
(本文转载)学习之用,侵权立删! 原文地址 http://blog.csdn.net/y_23k_bug/article/details/19965877?utm_source=tuicool&a ...
随机推荐
- django: template variable
模板变量用双大括号显示,如: <title>page title: {{title}}</title> 一 模板中使用变量 继续前面的例子,修改 index.html: < ...
- java开发的web下载大数据时的异常处理
同事用java开发了一个系统,其中有一个功能是下载大约10万笔数据到Excel中.当上线后,很多用户反映下载数据量大的时候就不能成功,但有时可以,所以结论就是系统不稳定,这个问题拖了很久没有解决. 在 ...
- Sql时间函数
一.sql server日期时间函数 Sql Server中的日期与时间函数 1. 当前系统日期.时间 select getdate() 2. dateadd 在向指定日期加上一段时间 ...
- 初次窥见智能指针auto_ptr和shared_ptr
#include <memory>//shared_ptr要用的头文件 using namespace std; class A //测试auto_ptr和shared_ptr的delet ...
- osg复制多个相同物体修改材质属性问题
转自http://www.cnblogs.com/ylwn817/articles/2153982.html 当通过osg复制多个相同物体时候,修改复制过来的某个物体材质属性时候,假设我们物体透明度, ...
- mysql windows 下导入大文件
先进入你的mysql bin目录 cd D:/php/mysql/bin 输入命令 mysql -u 用户名 -p 密码 数据库名 < 文件路径 ...
- 如何写一个网页标题title的闪动提示
通过网页title来提示用户有新消息这个功能很常见,比如现在的微博,还有一些邮箱,这个功能都很常见.如何实现则个功能呢? 思路是:通过ajax访问后台,若有新消息,则将网页的title替换为 提示信息 ...
- A + B Problem,hdu-1000
A + B Problem Problem Description Calculate A + B. Input Each line will contain two integers A and ...
- iOS学习之根据文本内容动态计算文本框高度的步骤
在视图加载的过程中,是先计算出frame,再根据frame加载视图的,所以在设计计算高度的方法的时候,设计成加号方法; //首先给外界提供计算cell高度的方法 + (CGFloat)heightFo ...
- 十分钟让你的ASP.NET MVC网站变成PHP
昨天从网上看来的,某个人发的方法: 第一:修改一下路由: 把RouteConfig中的: routes.MapRoute( name: "Default", url: " ...