第十三周阅读程序(3)
来源:互联网 发布:在线源码查看 编辑:程序博客网 时间:2024/06/06 01:12
问题及代码:
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:2016年5月21日 *版 本 号:v1.0 * *问题描述:阅读程序,写出运行结果 *输入描述: *程序输出: */#include<iostream>using namespace std;class Base{public: virtual void Who() = 0;};class FirstDerived:public Base{public: void Who(){cout<<"F";}};class SecondDerived:public Base{public: void Who(){cout<<"S";}};int main(){ FirstDerived first_obj; SecondDerived second_obj; Base &bref=first_obj; bref.Who(); bref=second_obj; bref.Who(); Base *bp; bp=&first_obj; bp->Who(); bp=&second_obj; bp->Who(); return 0;}
运行结果:
知识点总结:
纯虚函数:
通过它可以指明一个虚拟函数只是提供了一个可被子类型改写的接口。
纯虚函数是在基类中声明的虚函数,它可以在基类中有定义,而且派生类必须定义自己的实现方法。基类不能生成对象,可以使用指针或者引用派生类对象。基类不在基类中实现纯虚函数的方法是在函数原型后加“=0”
virtual void funtion1()=0
引入原因/纯虚函数的作用
为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。
在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。
为了解决上述问题,引入了纯虚函数的概念,将函数定义为纯虚函数(方法:virtual ReturnType Function()= 0;),则编译器要求在派生类中必须予以重写以实现多态性。同时含有纯虚拟函数的类称为抽象类,它不能生成对象。这样就很好地解决了上述两个问题。
0 0
- 第十三周 阅读程序(3)
- 第十三周 阅读程序(3)
- 第十三周阅读程序(3)
- 第十三周阅读程序3
- 第十三周阅读程序3
- 第十三周 程序阅读
- 第十三周 阅读程序
- 第十三周程序阅读
- 第十三周-阅读程序
- 第十三周-阅读程序
- 第十三周-阅读程序
- 第十三周--阅读程序
- 第十三周阅读程序
- 第十三周 程序阅读2(3):交通工具
- 第十三周阅读程序-交通工具类(3)
- 第十三周项目-阅读程序-3
- 第十三周--阅读程序(1)
- 第十三周--阅读程序(2)
- 获取矩阵的规模(Python、MATLAB、JAVA、C++)
- String,StringBuffer与StringBuilder的区别??
- Hadoop MapReduce并行编程框架
- ENVI5.1删除残余注册表信息
- 马鞍数—C语言实现
- 第十三周阅读程序(3)
- Android 基础总结:开篇
- 编译错误:multiple types in one declaration
- Android Studio 2.2 Preview - New UI Designer & Constraint Layout
- 探讨read的返回值的三种情况
- [从头学数学] 第217节 带着计算机去高考(九)
- SQLite数据库插入数据优化(swift)
- 个人网址导航
- 关于uc/os-ii在c51上的移植总结