当前位置:  编程技术>c/c++/嵌入式

C++概念重载、覆盖、隐藏的使用说明

    来源: 互联网  发布时间:2014-10-13

    本文导语:  函数重载: 在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,即函数重载。 重载的实现: 几个同名的重载函数仍然是不同的函数,它们是如何区分的呢?我们自然想到函数接口的两个要素:参数与返回值。如...

函数重载:

在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,即函数重载。

重载的实现:

几个同名的重载函数仍然是不同的函数,它们是如何区分的呢?我们自然想到函数接口的两个要素:参数与返回值。如果同名函数的参数不同(包括类型、顺序不同),那么容易区别出它们是不同的函数。

重载与覆盖成员函数被重载的特征:

(1)相同的范围(在同一个类中);

(2)函数名字相同;

(3)参数不同;

(4)virtual 关键字可有可无。

覆盖是指派生类函数覆盖基类函数,特征是:

(1)不同的范围(分别位于派生类与基类);

(2)函数名字相同;

(3)参数相同;

(4)基类函数必须有virtual 关键字。

隐藏规则:本来仅仅区别重载与覆盖并不算困难,但是C++的隐藏规则使问题复杂性增加了许多。这里“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:

(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。

(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。

 


    
 
 

您可能感兴趣的文章:

  • 浅析C#与C++相关概念的比较
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • win7, win8安装docker需要了解的概念
  • 操作系统概念问题(虚地址概念)
  • 哈希表及其概念
  • LINUX下有没有线程概念,和WIN下线程概念有什么不同,谢谢.
  • 正向代理与反向代理概念及其区别
  • 概念请教,一定给分,谢谢各位
  • php会话(session)生命周期概念介绍及设置更改和回收
  • 关于socket概念的理解问题!
  • Spring AOP中Pointcut,dvice 和 Advisor三个概念介绍
  • 请问unix/linux下Cb编程中,是否有工程的概念。
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 谁能给我详细讲解一下分区,文件系统的概念?
  • 网络接口的概念?
  • 一个最简单的问题:www服务器与web服务器是否一个概念?
  • 刚接触ubuntu ,一些概念有点乱,谁帮我理一下
  • 多任务,多进程,多线程的概念
  • 概念問題
  • 类和对象的概念区别!
  • 在Linux里有没有DLL这个概念?
  • 菜鸟提问:包是什么概念?
  • 哪一位高手能提供关于进程池的完整的概念?30分奉送!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3