分清虚函数和纯虚函数的区别:
(1).虚函数是函数前加关键字virtual,一般定义格式为:
virtual 类型 函数名 (参数表)

函数体

(2).纯虚函数的生命格式为:
virtual 类型 函数名 (参数表)=0;
即没有函数体。

(3).带有纯虚函数的类为抽象类:
例:
class 类名

virtual 类型 函数名(参数表)=0;
} 为抽象类。

关于抽象类:
(1).抽象类不能定义对象。
(2).抽象类只能作为基类来使用。
(3).构造函数不能是纯虚函数,析构函数可以是纯虚函数。

关于虚函数:
(1).只有类的成员函数才能说明为虚函数,因为虚函数仅适用于
继承关系的类对象,所以普通不能说明为虚函数。
(2).内联函数不能是虚函数,因为内联函数是在编译时决定其位置。
(3).构造函数不能是虚函数,因为构造时对象还是一片未定型的空间。
(4).析构函数可以是虚函数,而且通常声明为虚函 数。

总结:
(1).当在基类中把成员函数定义为虚函数后,在其派生类中定义的虚函数
必须与基类中的虚函数同名,参数的类型、顺序、个数必须一一对应。
(2).实现这种动态的多态性,必须使用基类类型的指针变量或引用,使该
指针指向不同的派生类的对象,并通过调用指针所指的虚函数才能实现动态的多态性。

实现多态的基本步骤:
(1).在基类中,定义成员函数为虚函数(virtual);
(2).定义基类的公有(public)派生类。
(3).在基类的公有派生中“重载”该虚函数。
(4).定义指向基类的指针变量,它指向基类的公有派生类的对象。

注意:重载虚函数不是一般的重载函数,它要求函数名、返回类型、参数个数
参数类型和顺序完全相同。

C++多态等知识点的更多相关文章

  1. java 多态 (知识点不完整)

    1.多态的条件 1.要有继承 2.方法重写 3.父类引用指向子类对象 多态中成员访问 1.   访问成员变量:  编译看左边,运行也看左边 f.num = 10 因为这里是父类的,看是父类Father ...

  2. day25 面向对象继承,多态,

    这两天所学的都是面向对象,后面还有几天也是它,面向对象主要有三个大的模块,封装,继承,多态,(组合),昨天主要讲了面向对象的命名空间,还有组合的用法,今天是讲的继承还有继承里面所包括的钻石继承,以及多 ...

  3. c# 第35节 类的多态

    本节内容: 1:多态前戏 2:解决多态的知识点 3:多态两个实例 1:多态前戏 多态源自生活中的现象: 阿拉甲,阿拉乙,阿拉丙,阿拉丁,是人这个类产生的四个对象: 他们的父亲说:世界上女的都是女老虎, ...

  4. 面向对象的继承和多态(is-a)

    继承的主要作用:我们使用继承主要是为了避免出现重复的定义,程序中如果出现多个地方有相同的定义,可以把相同程序提取出来定义为父类. 子类继承父类使用extends关键字,子类具备父类所有的属性和方法,包 ...

  5. C++练习案例1.计算机类(利用多态实现)

    c++简单计算机类 简介 大家好,这里是天天like的博客,这是我发的第一篇随笔,用来记录我的学习日程,大家可以相互学习,多多交流,感谢 今天我要记录的随笔是在学习c++多态的知识点练习改进的一个案例 ...

  6. java中的继承 和多态。

    package com.aaa.zxf.ajax.test; /** *一. java 中的继承和多态. * * 继承的特性? * 1.实现继承的方式 * A 如何建立继承关系(一个类继承于 另一个类 ...

  7. 201521123101 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1.clone方法 1.1 Object对象中 ...

  8. 201521123070 《JAVA程序设计》第4周学习总结

    1. 本章学习总结 1.1 尝试使用思维导图总结有关继承的知识点. http://naotu.baidu.com/file/4de6f42e4f4f6cce0531dd9997b04e60?token ...

  9. 201521123101 《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 理解类的继承的概念,明白父与子之间关系的 2. 书面作业 1.注释的应用,使用类的注释与方法 ...

随机推荐

  1. 每天一个linux命令(7):mv

    1.命令简介 mv(Move file)将源文件重命名为目标文件,或将源文件移动至指定目录.. 2.用法 mv [选项]... [-T] 源文件 目标文件 或:mv [选项]... 源文件... 目录 ...

  2. 【PMP】关键路径法与关键链法

    通俗理解 关键路径法:把项目上的资源都事先全部分到每个活动上. 关键链法:每个活动不打富余,项目经理自己掌握资源,哪个成员执行过程中遇到困难,再给他单独分配资源. PMBOK定义 关键路径法:关键路径 ...

  3. Effective Java 第三版——83. 明智谨慎地使用延迟初始化

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  4. SNF软件开发机器人-子系统-表单-表单设计

    表单设计 在我们做程序时总要对表单的内容进行设计,然而对控件位置等信息的调整总是麻烦的,还常常容易出错.SNF软件机器人完美的解决了这个问题. 1.效果展示: 2.使用说明: (1)打开页面,选中开发 ...

  5. python(62):保留两位小数

    转载:https://blog.csdn.net/jiandanjinxin/article/details/77752297 在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分). 例如 ...

  6. C语言 · 超级玛丽

    算法提高 超级玛丽   时间限制:1.0s   内存限制:256.0MB      问题描述 大家都知道"超级玛丽"是一个很善于跳跃的探险家,他的拿手好戏是跳跃,但它一次只能向前跳 ...

  7. NO.5   算法测试(词条统计)

     一.安装Eclipse 下载Eclipse,解压安装,例如安装到/usr/local,即/usr/local/eclipse 4.3.1版本下载地址:http://pan.baidu.com/s/1 ...

  8. Android开发怎么让自己的APP UI漂亮、大方(配色篇二)

    我们在没有效果图的app开发中有一件事情肯定很头疼:一个按钮的调色改过来改过去,还是很难看,最终只能暂时作罢,浪费了大量的开发时间和精力.开发规范篇见Android开发怎么让自己的APP UI漂亮.大 ...

  9. k8s的使用

    . 查看 kubectl 的状态 kubectl version . 查看集群信息 kubectl cluster-info . 查看节点信息 kubectl get nodes . 创建一个发布 k ...

  10. IIS 配置详解 请求长度限制调整

    当上传一个超过30M的文件时,服务器会重定向至404.13页面,报错如下: HTTP Error 404.13 - Not Found The request filtering module is ...