函数重载和虚函数在概念和使用方式方面的区别
2012-10-14 16:31
232 查看
函数重载和虚函数在概念和使用方式方面的区别
1.函数重载可以用于非成员函数和类的成员函数,而虚函数只能用于类的成员函数
2.函数重载可用于构造函数,而虚函数不能用于构造函数
3.如果对成员函数进行重载,重载的函数与被重载的函数应该是用一个类中的成员函数,不能分属于两个不同继承层次的类,函数重载处理的是横向的重载。虚函数是对同一类族中的基类和派生类的同名函数的处理,即允许在派生类中对基类的成员函数重新定义。虚函数处理的是纵向的同名函数。
4.重载的函数必须具有相同的函数名,函数类型可以相同也可以不同,但函数的参数个数和参数类型二者中至少有一个不同,否则在编译时无法区分。而虚函数则要求同一类族中的所有虚函数的函数名,函数类型,函数的参数个数和参数类型都全部相同,否则就不是重定义了,也就不是虚函数了
5.函数重载是在程序编译阶段确定操作的对象的,属于静态关联。虚函数是在程序运行阶段确定操作对象的,属于动态关联。
1.函数重载可以用于非成员函数和类的成员函数,而虚函数只能用于类的成员函数
2.函数重载可用于构造函数,而虚函数不能用于构造函数
3.如果对成员函数进行重载,重载的函数与被重载的函数应该是用一个类中的成员函数,不能分属于两个不同继承层次的类,函数重载处理的是横向的重载。虚函数是对同一类族中的基类和派生类的同名函数的处理,即允许在派生类中对基类的成员函数重新定义。虚函数处理的是纵向的同名函数。
4.重载的函数必须具有相同的函数名,函数类型可以相同也可以不同,但函数的参数个数和参数类型二者中至少有一个不同,否则在编译时无法区分。而虚函数则要求同一类族中的所有虚函数的函数名,函数类型,函数的参数个数和参数类型都全部相同,否则就不是重定义了,也就不是虚函数了
5.函数重载是在程序编译阶段确定操作的对象的,属于静态关联。虚函数是在程序运行阶段确定操作对象的,属于动态关联。
相关文章推荐
- Chapter12——请比较函数重载和虚函数在概念上和使用方式有什么区别
- nginx服务器详细安装过程(使用yum 和 源码包两种安装方式,并说明其区别)
- TRUNCATE TABLE 与 DELETE在删除整个表的所有记录时的区别具体到性能,效率,操作方式等方面
- BroadcastReceiver的使用和两种注册方式使用及区别
- spring boot 、 spring cloud 中使用servlet形式get、post方式http请求例子,并且和原生servlet有区别
- 上证所Level-2在信息内容和传送方式方面的比较优势[逐笔数据与分笔数据的根本区别]
- SQL分页查询,纯Top方式和row_number()解析函数的使用及区别
- 直连线和交叉线制作区别及使用方式
- RTTI、虚函数和虚基类的实现方式、开销分析及使用指导
- 【概念解析二】String 和 StringBuffer的使用区别和场合
- 数据库-视图(概念、优点、使用规则和限制、视图和基本表的区别)
- 使用C操作文件的两种方式及其区别
- (原创)关于PopupWindow的showAsDropDown()和showAtLocation()使用方式及其区别
- 使用函数重载的方式定义两个重名函数,分别求出int型数的两个点间的距离和浮点型数的两点间距离
- nginx服务器详细安装过程(使用yum 和 源码包两种安装方式,并说明其区别)
- get和post的区别及使用方式
- button和submit的区别及使用js实现页面跳转的方式
- 使用iframe方式上传图片,并检测图片大小(解决js限制图片大小在浏览器兼容性方面不行)
- 比较application,session,cookies,viewstate四个对象区别?(从原理,使用范围, 存取方法等方面来讨论)
- 简单明了地解释JMS , 相关概念 ,以及JMS的实例代码下载 ,传统使用方式(非Spring框架下的集成)