解析overload、override、final
来源:互联网 发布:网络管理的基本概念 编辑:程序博客网 时间:2024/06/16 10:23
一、overload 重载
给出函数 void fun();下面给出四个对比:
void fun(int a); 重载
int fun(int a ,double b); 重载
const void fun(); error
const void fun(int a, int b); 重载
编译器在编译时,会将函数名结合参数类型列表以某种形式记录起来,编译器不同,记录方式也不一样。下面给出上面的大致形式:
fun _null 这个是我们给出的,相对应上面的四个:
fun _int
fun _int,_double
fun _null 相同就不是重载,会报错
fun _int,_int
总结:
overload重载和函数名以及参数类型有关
二、override 重写
override是在类继承中,子类重写父类virtual方法的关键字。其实override我觉得写不写都无所谓,只是一个标识而已。
下面给出代码:
#include <iostream>using namespace std;class a{public:virtual void fun();protected:private:};void a::fun(){cout << "a" << endl;}class b : public a{public:virtual void fun() override;protected:private:};void b::fun(){cout << "b" << endl;}int main(){b cb;cb.fun();system("pause");return 0;}
三、final关键字
final关键字是为了避免类被继承,或是基类的函数被改写:#include <iostream>using namespace std;class a{public:virtual void fun();virtual void funFinal() final;protected:private:};void a::fun(){cout << "a::fun" << endl;}void a::funFinal(){cout << "a::funFinal" << endl;}class b : public a{public:virtual void fun() override;
// virtual void funFinal(); // 无法被重写
protected:private:};void b::fun(){cout << "b::fun" << endl;}int main(){b cb;cb.fun();system("pause");return 0;}
0 0
- 解析overload、override、final
- 重载(overload)和覆盖(override) 解析
- overload,override
- overload override
- override overload
- override overload
- C++中overload,override,overwrite的区别详细解析
- C++中overload,override,overwrite的区别详细解析
- 重载(Overload)和重写(Override)解析
- final,finally和finallize的区别&&override和overload的区别
- overload和override
- 小析override & overload
- overload and override
- C# override overload overwrite
- Overload & Override
- overload,override,hide
- Overload和Override
- C# override overload overwrite
- 检测UIScrollView(UITableView)的滚动方向
- 面试题 行转列
- 2006-2014年
- hdu 1114
- 把文件直接删除到回收站
- 解析overload、override、final
- JAVASCRIPT之词法分析----你真的懂JS吗? 【未完待续】
- lib 和 dll 的区别、生成以及使用详解
- 几秒前,几分钟前,几小时前,几天前,几月前,几年前的java实现
- 地形挖坑
- Objective-C函数速查实例手册(4)
- netbeans for php 最常用快捷键整理
- Objective-C函数速查实例手册(5)
- MSVCRT.lib(wcrtexew.obj) : error LNK2019: unresolved external symbol wWinMain referenced in function