C++中重写和重载以及隐藏

原创 2016年08月31日 13:49:49

    C++中类的成员函数重写(覆盖),重载和隐藏概念常容易混淆,如下以表格形式做一个简单梳理:


作用域

函数名

参数列表

是否虚函数

注意点

重载

相同,函数都是同一类成员函数

相同

不同(类型,个数)

不关心

1.不同通过返回值类型不同实现重载;

2.参数顺序不同不能实现重载;

重写(覆盖)

不同,通常派生类重写基类成员函数

相同

相同

基类必须是虚函数

1.重写与被重写函数返回值也要一致;

2.被重写函数不能是私有的;

3. 静态函数不能重写;

隐藏

不同,通常派生类隐藏基类成员函数

相同

不关心

不关心

通常要注意避免隐藏



版权声明:本文为博主原创文章,未经博主允许不得转载。

C++中重载、重写(覆盖)和隐藏的区别

如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数有virtual关键字。此时,基类的函数不会被“隐藏”。(在这里,你要理解为覆盖哦^_^) 隐藏”是指派生类的函数屏蔽了与其同名的基类...
  • zx3517288
  • zx3517288
  • 2015年10月08日 18:33
  • 4395

java中的重载、重写和隐藏

一、重载(overload) 方法重载就是一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或者不同的参数个数。重载与返回值的类型和修饰符无关。 class test{ public in...
  • ziluolanzhang
  • ziluolanzhang
  • 2015年09月08日 15:04
  • 2034

c++三大概念要分清--重载,隐藏(重定义),覆盖(重写)

重载,隐藏(重定义),覆盖(重写)—这几个名词看着好像很像,不过其实一样都不一样!!综述:一、重载:(1) 概念:在同一个作用域内;函数名相同,参数列表不同(参数个数不同,或者参数类型不同,或者参数...
  • gogogo_sky
  • gogogo_sky
  • 2017年06月05日 20:22
  • 246

【C++拾遗】 C++函数重载、重写、重定义的区别

函数重载(overload) 函数重载是指在一个类中声明多个名称相同但参数列表不同的函数,这些的参数可能个数或顺序,类型不同,但是不能靠返回类型来判断。特征是: (1)相同的范围(在同一个作用域中);...
  • Xiejingfa
  • Xiejingfa
  • 2015年09月16日 17:00
  • 4593

C++_重载、重写和重定义的区别

参考博客:http://blog.sina.com.cn/s/blog_8ddc5c2e01013hbd.html 相信看到这个标题头就晕了,其实将他们彼此放到一起来看,就会比较清晰辨认了。 重载:函...
  • u010275850
  • u010275850
  • 2015年05月08日 18:37
  • 3383

彻底搞清C++中的重载、重定义、重写

1、重载首先说重载,它最简单,C++中的重载和java中的差不多,都是在一个类中,方法名相同而参数不同的几个方法,但是不能靠返回类型来判断。例如:class AA { public: void...
  • qq_28702545
  • qq_28702545
  • 2016年10月16日 17:10
  • 565

C++(多态实现原理)函数重写,重载,重定义

多态的实现原理:          首先介绍下函数重写 重定义 重载的区别; 函数重写:          发生在父类和子类之间,子类将父类中的同名函数进行了覆盖,如果在函数前面含有virtual那么...
  • alpha_love
  • alpha_love
  • 2017年03月13日 17:14
  • 882

C++ 虚函数 重载 重写的区别(转)

版权声明:本文转自http://blog.csdn.net/hackbuteer1/article/details/7475622  C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语...
  • Primeprime
  • Primeprime
  • 2016年03月04日 00:29
  • 3840

C++的重写和隐藏

C++的重写是指派生类重新定义基类的虚函数;隐藏通常是指的子类隐藏父类的方法,面试中遇到了类似两者结合的问题,特此整理下缕缕思路。背景父类如下: class Tfather { public: ...
  • zhaoyunfullmetal
  • zhaoyunfullmetal
  • 2015年10月18日 20:11
  • 841

C++重载重写重定义

在C++中有三个很相似的概念,很容易混淆。 下面就来总结区分,下面是测试代码 不过在分析代码之前先来分析一下关于上面的三个名词的概念 重载:1)必须在同一个类中,2)函数名相同,参数列表不同; ...
  • u010165367
  • u010165367
  • 2016年05月14日 10:44
  • 309
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++中重写和重载以及隐藏
举报原因:
原因补充:

(最多只允许输入30个字)