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

C++函数重载的深入解析

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

    本文导语:  我们在开瓶瓶罐罐的时候,经常会遭遇因各种瓶口规格不同而找不到合适的工具的尴尬。所以有时候就为了开个瓶,家里要备多种规格的开瓶器。同样是开个瓶子嘛,何必这么麻烦?于是有人发明了多功能开瓶器,不管啤酒瓶...

我们在开瓶瓶罐罐的时候,经常会遭遇因各种瓶口规格不同而找不到合适的工具的尴尬。所以有时候就为了开个瓶,家里要备多种规格的开瓶器。同样是开个瓶子嘛,何必这么麻烦?于是有人发明了多功能开瓶器,不管啤酒瓶汽水瓶还是软木塞的红酒瓶都能轻松打开。

然而开瓶器的问题也会发生到程序设计中。比如我们要编写一个函数来求一个数的绝对值,然而整数、浮点型数、双精度型数都有绝对值,但为它们编写的函数返回值类型却是各不相同的。比如:

代码如下:

int iabs(int a);
float fabs(float a);
double dabs(double a);

这样是不是有点备了多种开瓶器的感觉?我们能不能在程序设计中也做一个多功能的开瓶器,把所有数据类型的求绝对值都交给abs这一个函数呢?

在C++中,我们也能够把具有相同功能的函数整合到一个函数上,而不必去写好多个函数名不同的函数,这叫做函数的重(音chóng)载(Overload)。重载的本质是多个函数共用同一个函数名。

我们先来看一个函数重载的实例:(程序6.3)

代码如下:

#include "iostream.h"
int abs(int a);//当参数为整型数据时的函数原型
float abs(float a);//当参数为浮点型数据时的函数原型
double abs(double a);//当参数为双精度型数据时的函数原型
int main()
{
   int a=-5,b=3;
   float c=-2.4f,d=8.4f;
   double e=-3e-9,f=3e6;
   cout

    
 
 

您可能感兴趣的文章:

  • C++ Maps 成员 key_comp():返回比较元素key的函数
  • 怎么样在C++里调用Fortran函数??????
  • C++ Maps 成员 value_comp():返回比较元素value的函数
  • SOS ,在UNIX下编译C++程序时出现链接错误:未下义的符号,但函数库里有这些函数,不知道为什么?
  • C++ MultiMaps 成员 key_comp():返回比较key的函数
  • 求linux C++的时间相关函数及用法,急用,谢谢
  • C++ MultiMaps 成员 value_comp():返回比较元素value的函数
  • C++ 函数编程库 FC++
  • C++ Strings(字符串) 成员 Constructors:构造函数,用于字符串初始化
  • C++ 程序中,如何增加c函数?
  • Linux c++虚函数(virtual function)简单用法示例代码
  • C++中虚拟函数表的问题
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • linux下编译c++程序,系统头文件中包含的函数的定义源代码可以查看吗?
  • c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
  • Linux中的共享库难道只能导出函数,而不能导出C++类吗?
  • c++断言assert()函数的头文件及其用法详解
  • 常用C++函数库 Libretta
  • Windows和Linux下C++类成员方法作为线程函数方法介绍
  • C++空类默认函数详细解析
  • C++ STL库中priority_queue介绍,成员函数说明及priority_queue具体用法举例
  • 如何在C程序中调用C++中的函数
  • c语言也能重载函数? 怎么解释。unix编程的open函数。
  • LINUX的共享库(.so库)中可以重载函数吗?
  • 类成员函数的重载、覆盖与隐藏之间的区别总结
  • GDB调试C++程序时如何使程序在运算符重载函数处停止
  • QT_构造函数重载_重复定义问题
  • PHP小技巧之函数重载
  • 请教一个关于"重载"c库函数的问题
  • 使用重载的构造函数就出错!!!
  • 解析C++中不能重载为友元函数的四个运算符
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php通过pack和unpack函数实现对二进制数据封装及解析
  • php trim函数执行过程解析
  • PHP json_decode函数详细解析
  • shell自定义函数及参数调用解析
  • jquery toggle()函数实例解析
  • 内联函数inline与宏定义深入解析
  • 数据库 iis7站长之家
  • C#委托所蕴含的函数指针概念详细解析
  • 解析c语言中"函数调用中缺少哨兵"的情况分析
  • 函数外初始化与函数内初始化详细解析
  • C#中私有构造函数的特点和用途实例解析
  • C语言static修饰函数详细解析
  • 深入解析函数指针与返回函数的指针
  • C++指向函数的指针实例解析
  • 解析在MYSQL语法中使用trim函数删除两侧字符
  • 解析C++中虚析构函数的作用
  • C语言typedef与复杂函数声明问题的深入解析
  • php取整函数实例解析
  • C++中函数的默认参数详细解析
  • php中sprintf与printf函数用法区别解析
  • Linux系统中C语言编程创建函数fork()执行解析
  • linux c 生成随机数srand函数和rand函数介绍及代码示例
  • 请问:定义了2个函数,其中第一个函数要访问另外一个函数的变量,怎么处理阿?谢谢
  • Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
  • 如果知道一个函数的地址或函数名,如何得到函数所在的文件名?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • java的数学函数在那个类中,如幂函数、指数、对数、双曲线函数等?
  • cityhash 32位,64位和128位介绍及函数列表
  • 一个父类的构造函数的参数是(Applet applet),请问它的子类构造函数当中应怎样调用父类构造函数?
  • PHP的substr() 函数用法
  • 虚函数被类的构造析构函数和成员函数调用虚函数的执行过程




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

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

    浙ICP备11055608号-3