前一篇 http://www.cnblogs.com/iois/p/4085173.html
写有些地方不够准确,重新整理了一遍

函数重载(Function Overloading)

C++允许同一范围(scope)( 在同一个类中 )内具有多个名称相同的函数。这些函数成为重载函数(overloaded function)

C++ 使用函数声明的参数数量参数类型省略号存在或缺失 ( Presence or absence of ellipsis )constvolatile来区分同一范围内具有相同名称的函数组。
http://msdn.microsoft.com/zh-cn/library/5dhe1hce.aspx

重定义(redefining,也叫隐藏):

派生类的函数屏蔽了与其同名的基类函数;

  1. 若派生类的函数与基类的函数名称相同,但参数类表不同,则基类函数被隐藏(不管基类函数有无virtual修饰);
  2. 若派生类的函数与基类的函数名称相同,参数列表相同,但基类函数无virtual修饰,则基类函数被隐藏。

重定义:一个继承了的成员函数的定义可以在派生类中进行修改,使其在派生类中的含义有别于基类中的含义。
我想使用基类给出的函数的定义,虽然我是一个派生类:son_obj.father::f();


自己的理解 :重载、重定义 <-->覆盖

重定义是发生在基类 派生类 这样的范围内的 重载
重载重定义 其实是一类 东西,本质有别于 覆盖


覆盖(override,重写)(用于实现多态,动态绑定):

子类重写定义基类中有相同名字相同参数的虚函数。

  • 不同范围内(基类 派生类
  • 函数名相同
  • 参数相同
  • 基类函数有virtual关键字修饰

virtual函数是private的,派生类中可重写为public 或者protected。

自己的理解 :动态绑定 <-->覆盖/重写

override:
凌驾;不理会;比…更重要;超驰控制
[网络] 覆盖;重写;覆写

http://www.cnblogs.com/kevinGaoblog/archive/2012/08/25/2656989.html

http://blog.163.com/clevertanglei900@126/blog/static/111352259201102441934870/

c++ 重载,覆盖,重定义 2的更多相关文章

  1. c++ 浅拷贝和深拷贝 指针和引用的区别 malloc(free)和new(delete)的区别 重载重写重定义

    4.malloc(free)和new(delete)的区别 malloc()函数: 1.1 malloc的全称是memory allocation,中文叫动态内存分配. 原型:extern void ...

  2. C++重写(覆盖)、重载、重定义、

    总结: 重写(覆盖)override 是指派生类函数重写(覆盖)基类函数 不同的范围,分别位于基类和派生类中 函数的名字相同 参数相同 基类函数必须有virtual关键字 重载overload 成员函 ...

  3. C++ 学习笔记 (八)重载 重写 重定义以及名字覆盖

    学习C++必定会遇到重载.重写.重定义.概念的东西多也是学习C++蛋疼之处,但是还是得弄懂,学懂了也就不觉得多了. 概念,特点: 重载: 直白点说就是函数名字相同,传参的个数,类型不一样.判断标准在于 ...

  4. C++重写(覆盖)、重载、重定义、多态

    1 重写(覆盖)override override是重写(覆盖)了一个方法,以实现不同的功能.一般用于子类在继承父类时,重写(覆盖)父类中的方法.函数特征相同,但是具体实现不同. 重写需要注意: 被重 ...

  5. C++重写与重载、重定义

    文章引用自:http://blog.163.com/clevertanglei900@126/blog/static/111352259201102441934870/ 重载overload:是函数名 ...

  6. (转)C++重写、重载和重定义的区别

    C++ 重写重载重定义区别 (源自:http://blog.163.com/clevertanglei900@126/blog/static/111352259201102441934870/) 1 ...

  7. 重载重写重定义-易混淆概念-C++编译器处理方式

    1.函数重载 1)必须在同一个类中进行. 2)子类无法重载父类的函数,父类同名函数将被名称覆盖 3)重载是在编译期间根据参数类型和个数决定函数调用 2.函数重写 1)必须发生于父类与子类之间 2)并且 ...

  8. C++ 虚函数及重载、重定义、重写

    #include<iostream> usingnamespace std; class BASE { public: BASE()=default; BASE(int publicVal ...

  9. C++中重载、重定义、重写概念辨析

    重载:函数名相同,函数的参数个数.参数类型或参数顺序三者中必须至少有一种不同.函数返回值的类型可以相同,也可以不相同.发生在一个类内部. 重定义:也叫做隐藏.覆盖,子类重新定义父类中有相同名称的非虚函 ...

  10. C++ 重载 重写 重定义

    重写:存在于类的继承,修饰符是virtual,函数的参数个数,顺序,类型,均相同. 重载:函数的参数列表,类型,顺序不相同. 重定义:对父类的函数进行屏蔽,参数列表可以不相同,没有virtual修饰

随机推荐

  1. 从一个App跳转到另一个App

    在跳入App的info中配置Bundle identifier 在跳入App的info中配置URL Schemes 在另一个应用程序中按照上边的操作添加openURL并运行,就可以跳转了 调用open ...

  2. ubuntu14.04LTS ruby on rails 开发环境

    小弟初学 Ruby,也没用过Linux. 在网上搜了好多关于开发环境的配置的文章,但总是和实际有点出入,找了N遍文章后,终于找到最简环境安装配置方法,分享下 推荐用 Ubuntu,感觉对于习惯用Win ...

  3. iOS开发针对SQL语句的封装

      1.使用依赖关系 a.需要添加libsqlite3.tbd 静态库. b.需要添加第三方框架 FMBD.MJExtension. 2. SQL语句类封装名DataBaseSqlTool 类方法介绍 ...

  4. Javah生成JNI头文件

    首先确保java的环境变量配置好了. 1:打开cmd 进入doc命令窗口: 进入class所在目录,我的class是在F:\summerVacation\ndkhelloworld\bin\class ...

  5. Qt Creator error: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    Qt Creator error: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏   治标又治本的解决方法:   找到在 { C:\Windows\Microsoft.NET\Fra ...

  6. mysql记录慢查询

    1,配置开启 Linux: 在mysql配置文件my.cnf中增加 log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会 ...

  7. exp-00091 oracle错误的解决办法

    在进行数据库导入导出使用命令exp.imp经常出现exp-00091 这样的错误的时候,我们需要做的是对于环境变量NLS_LANG设置正确 首先,我们先查看需要导出的数据库的字符编码    selec ...

  8. img 的 align 属性

    AbsBottom 图像的下边缘与同一行中最大元素的下边缘对齐. AbsMiddle 图像的中间与同一行中最大元素的中间对齐. Baseline 图像的下边缘与第一行文本的下边缘对齐. Bottom ...

  9. C++,对象的 =赋值 以及 复制构造函数赋值

    1. C++默认实现了 = 号赋值:operator=只要将一个对象的内容的内容逐位复制给另外一个对象即可. 2. C++默认实现了复制构造函数:同样,只要将一个对象的内容的内容逐位复制给另外一个对象 ...

  10. Markdown 11 种基础语法

    现在是我在学习Markdown时做的笔记.学完这些Markdown的基本使用已经不成问题. 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置标题,有两种方式: 第一种: ...