C++:44---关键字virtual、override、final
一、虚函数
概念:在函数前面加virtual,就是虚函数
虚函数的一些概念:
只有成员函数才可定义为虚函数,友元/全局/static/构造函数都不可以
虚函数需要在函数名前加上关键字virtual
成员函数如果不是虚函数,其解析过程发生在编译时而非运行时
派生类可以不覆盖(重写)它继承的虚函数
重写(覆盖)的概念与规则
派生类重写(覆盖)基类中的函数,其中函数名,参数列表,返回值类型都必须一致,并且重写(覆盖)的函数是virtual函数
虚函数在子类和父类中的访问权限可以不同
相关规则:
①如果虚函数的返回值类型是基本数据类型:返回值类型必须相同
②如果虚函数的返回值类型是类本身的指针或引用:返回值类型可以不同,但派生类的返回值类型小于基类返回值类型
基类与派生类的虚函数名与参数列表相同,至于参数列表为什么一致是为了避免虚函数被隐藏
函数返回值有以下要求:
class A {public:int a;public:A(int num) :a(num) {};virtual A& func() {}; //虚函数};class B:public A{public
C++:44---关键字virtual、override、final相关推荐
- override,final的使用,两者都是针对虚函数,也就是说要有virtual关键字
1.override,final的使用,两者都是针对虚函数,也就是说要有virtual关键字 #include <iostream> //C++中的final和override主要是 ...
- C++11强类型枚举,override/final
C++11(一)开篇 这个系列主要介绍C++11的一些新的特性,C++11问世至今已经有将近十年了.但是许多公司仍然停留在C++98上.之前在部门分享过C++11的知识,在这里分享给有需要的人. C+ ...
- c++ 11 override final
C++ 11添加了两个继承控制关键字:override和final. override确保在派生类中声明的重载函数跟基类的虚函数有相同的签名.final阻止类的进一步派生和虚函数的进一步重载 出处:h ...
- 谈谈C#中的三个关键词new , virtual , override(装载 Winner.Net)
C#支持单继承,说到继承就不得不说new,virtual和override这三个关键词,灵活正确的使用这三个关键词,可以使程序结构更加清晰,代码重用性更高. 以下是msdn中对new,virtual和 ...
- 谈谈C#中的三个关键词new , virtual , override
谈谈C#中的三个关键词new , virtual , override C#支持单继承,说到继承就不得不说new,virtual和override这三个关键词,灵活正确的使用这三个关键词,可以使程序结 ...
- C#关键字——virtual浅见
C#关键字--virtual的浅见 本篇文章主要讲解c#中virtual关键字的用法,希望对远道而来您能有一些帮助,准备好了嘛?那么咱们就一起开车喽! ---------------------- 1 ...
- 你了解c++中的关键字virtual吗?
virtual在英文中表示"虚"."虚拟"的含义.c++中的关键字"virtual"主要用在两个方面:虚函数与虚基类.下面将分别从这两个方面 ...
- c++关键字virtual的用法(面试)
一.基础概念 我们知道,函数重载,运算符重载,模板属于编译时的多态形式,而虚函数则是运行时的多态形式.因此,在这里我们先来介绍一下什么时静态联编和动态联编. 静态联编 函数的重载,运算符的重载在编译器 ...
- c++ override final关键字
final: 1.一个类或结构体不希望被继承 class Base final {};class Derive : public Base {}; 报错信息如下: 1.cpp:34:7: error: ...
- C# 关键字 virtual、override和new的用法
代码如下: class A {public void foo(){Console.WriteLine("A::foo()");}public virtual void bar(){ ...
最新文章
- 计算机音乐情深深雨蒙蒙,情深深雨蒙蒙 MIDI File Download :: MidiShow
- ionic开发:第一步
- linux 内核驱动模块的编译及加载
- JSplitPane
- c语言推箱子文字说明,c语言 推箱子(C language Sokoban).doc
- .NET下如何拦截鼠标、键盘消息?Win32NET来帮你
- web-软件架构模式-mvc与mtv
- css3弹性盒模型flex快速入门与上手(align-content与align-items)
- JTT1078-2016道路运输车辆卫星定位系统视频通信协议-音视频上传部分
- 笔记本不用fn也能用功能键
- 拔丝芋头的Java学习日记--Day3
- 做一个jQuery插件---带“旋转木马”效果的轮播图
- 【旅游类APP源码】开发者案例开源,走过路过不可错过!
- XJTU第十三周大计基编程作业
- 什么是智能卡与IC卡
- 读懂你的大脑——漫话神经元
- 英文翻译法语-英文法语翻译软件
- 超简单教你在树莓派上安装opencv(二)
- 批量下载图片的插件-免费自动下载图片的插件
- 山东财经大学python期末考试题型_山东财经大学2012012学年第二学期期末试题