亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > C++ > 正文

C++教程:C++函數(shù)重載詳解

2020-05-23 14:27:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
我們?cè)陂_瓶瓶罐罐的時(shí)候,經(jīng)常會(huì)遭遇因各種瓶口規(guī)格不同而找不到合適的工具的尷尬。所以有時(shí)候就為了開個(gè)瓶,家里要備多種規(guī)格的開瓶器。同樣是開個(gè)瓶子嘛,何必這么麻煩?于是有人發(fā)明了多功能開瓶器,不管啤酒瓶汽水瓶還是軟木塞的紅酒瓶都能輕松打開。

然而開瓶器的問(wèn)題也會(huì)發(fā)生到程序設(shè)計(jì)中。比如我們要編寫一個(gè)函數(shù)來(lái)求一個(gè)數(shù)的絕對(duì)值,然而整數(shù)、浮點(diǎn)型數(shù)、雙精度型數(shù)都有絕對(duì)值,但為它們編寫的函數(shù)返回值類型卻是各不相同的。比如:
int iabs(int a);
float fabs(float a);
double dabs(double a);

這樣是不是有點(diǎn)備了多種開瓶器的感覺?我們能不能在程序設(shè)計(jì)中也做一個(gè)多功能的開瓶器,把所有數(shù)據(jù)類型的求絕對(duì)值都交給abs這一個(gè)函數(shù)呢?

在C++中,我們也能夠把具有相同功能的函數(shù)整合到一個(gè)函數(shù)上,而不必去寫好多個(gè)函數(shù)名不同的函數(shù),這叫做函數(shù)的重(音chóng)載(Overload)。重載的本質(zhì)是多個(gè)函數(shù)共用同一個(gè)函數(shù)名。

我們先來(lái)看一個(gè)函數(shù)重載的實(shí)例:(程序6.3)
#include "iostream.h"
int abs(int a);//當(dāng)參數(shù)為整型數(shù)據(jù)時(shí)的函數(shù)原型
float abs(float a);//當(dāng)參數(shù)為浮點(diǎn)型數(shù)據(jù)時(shí)的函數(shù)原型
double abs(double a);//當(dāng)參數(shù)為雙精度型數(shù)據(jù)時(shí)的函數(shù)原型
int main()
{
   int a=-5,b=3;
   float c=-2.4f,d=8.4f;
   double e=-3e-9,f=3e6;
   cout <<"a=" <<abs(a) <<endl <<"b=" <<abs(b) <<endl;//輸出函數(shù)返回的結(jié)果
   cout <<"c=" <<abs(c) <<endl <<"d=" <<abs(d) <<endl;
   cout <<"e=" <<abs(e) <<endl <<"f=" <<abs(f) <<endl;
   return 0;
}
int abs(int a)//函數(shù)定義
{
   cout <<"int abs" <<endl;//顯示運(yùn)行了哪個(gè)函數(shù)
   return (a>=0?a:-a);//如果a大于等于零則返回a,否則返回-a。
}
float abs(float a)
{
   cout <<"float abs" <<endl;
   return (a>=0?a:-a);
}
double abs(double a)
{
   cout <<"double abs" <<endl;
   return (a>=0?a:-a);
}
運(yùn)行結(jié)果:
int abs
int abs
a=5
b=3
float abs
float abs
c=2.4
d=8.4
double abs
double abs
e=3e-009
f=3e+006

運(yùn)行結(jié)果表明,abs函數(shù)果然能夠處理三種不同數(shù)據(jù)類型的數(shù)據(jù)了。那么我們?cè)鯓硬拍茏约涸煲粋€(gè)“多功能工具”呢?

其實(shí)要編寫一個(gè)重載函數(shù)并不是很麻煩。首先,我們要告訴電腦,同一個(gè)函數(shù)名存在了多種定義,所以,我們要給同一個(gè)函數(shù)名寫上多種函數(shù)原型(如程序6.3的第二到第四行);其次,我們要對(duì)應(yīng)這些函數(shù)原型,分別寫上這些函數(shù)的定義(如程序6.3的主函數(shù)體之后,對(duì)三個(gè)abs函數(shù)的定義)。

然而電腦又是如何來(lái)識(shí)別這些使用在不同環(huán)境下的“工具”的呢?

在日常生活中使用到多功能工具,如果我們不知道具體應(yīng)該使用哪個(gè)工具,我們會(huì)把每個(gè)工具放上去試一試,如果只有唯一一個(gè)工具適合,那么我們就毫無(wú)疑問(wèn)地能夠確定就是使用它了。但是如果出現(xiàn)了兩個(gè)或者兩個(gè)以上工具都能適合,我們就分不清到底應(yīng)該使用哪個(gè)是正確的了。

電腦的做法和我們是類似的。電腦是依靠函數(shù)聲明時(shí)參數(shù)表中參數(shù)個(gè)數(shù)、各參數(shù)的數(shù)據(jù)類型和順序來(lái)判斷到底要運(yùn)行哪個(gè)函數(shù)的。因此,當(dāng)重載函數(shù)參數(shù)表完全相同的時(shí)候,電腦便無(wú)法判斷應(yīng)該運(yùn)行哪個(gè)函數(shù),于是程序就出錯(cuò)了。

我們了解了電腦是如何識(shí)別重載函數(shù)以后,發(fā)現(xiàn)要編寫一個(gè)重載函數(shù)還是需要注意一些地方的,那就是:在重載函數(shù)中,任意兩個(gè)函數(shù)的參數(shù)表中的參數(shù)個(gè)數(shù)、各參數(shù)的數(shù)據(jù)類型和順序不能完全一樣。例如int func(int a,char b)和float func(int c,char d)就不能重載,因?yàn)樗鼈兊膮?shù)個(gè)數(shù)、各參數(shù)的類型和順序完全一樣,即使形參名不同、返回值類型不同也是無(wú)濟(jì)于事的。

在調(diào)用一個(gè)重載函數(shù)時(shí),可能會(huì)發(fā)生找不到一個(gè)完全合適的函數(shù)。這時(shí)候,就需要進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。由于這種方法可能導(dǎo)致數(shù)據(jù)丟失或數(shù)據(jù)類型不嚴(yán)格符合,且在充分考慮問(wèn)題后,這種情況是可以盡量避免的,所以這里不再就這個(gè)問(wèn)題展開論述。有興趣的讀者可以查閱其他C++的參考資料。

算法時(shí)間:重載函數(shù)
從某種意義上說(shuō),重載函數(shù)是方便了函數(shù)的使用者。在前一節(jié)我們知道,如果完成了所有函數(shù)的編寫,那么完成一個(gè)程序就像搭積木一樣簡(jiǎn)單了。然而如果功能相似名字卻不同的函數(shù)太多,那么多“積木”搭起來(lái)也未必簡(jiǎn)單。當(dāng)函數(shù)的編寫者充分考慮了不同情況下應(yīng)該運(yùn)行稍有不同的函數(shù),函數(shù)的使用者就不必為這些小細(xì)節(jié)而煩惱了。不過(guò)重載函數(shù)的函數(shù)名還是應(yīng)該符合其功能,如果把功能完全不同的函數(shù)重載,那么就大大影響了程序的可讀性。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲一区二区三区在线| 日韩一区二区电影网| 久久精品国产精品亚洲毛片| 日韩亚洲综合在线| 第一sis亚洲原创| 91免费福利视频| 无码一区二区三区在线观看| 中文字幕丰满孑伦无码专区| 国产精品视频不卡| 国产成人一区二区三区影院| 欧美性猛交一区二区三区| 亚洲激情视频| 久久综合网络一区二区| 亚洲国产精品一区二区久| 黑人玩弄人妻一区二区三区| 啊啊啊啊啊好爽| 艳母动漫在线看| av欧美精品.com| 久久99精品久久久久久| 69国产精品视频| 中文字幕不卡在线| 亚洲午夜一区二区三区| 久久久久99精品成人片| 黄色网免费看| 欧美亚洲成人精品| 一本久道久久综合中文字幕| 欧美四级剧情无删版影片| 伊人精品一区二区三区| 1区2区3区精品视频| 成人免费视频网址| 欧美极品少妇xxxxⅹ喷水| 成人免费看片98欧美| 日本人体一区二区| 国产精品毛片一区二区在线看舒淇| 韩国一级黄色录像| 午夜精品成人av| 在线一区二区三区精品| 一区二区三区91| 欧美电影一区二区三区| 日韩成人av网站| 亚洲电影成人| 亚洲日本国产精品| 成人在线国产精品| 亚洲欧美日韩不卡一区二区三区| 99国产精品久久久久99打野战| 神马久久一区二区三区| 久久精品国产精品亚洲色婷婷| hd100%videos日本| 加勒比日本影视| 欧美久久久久| 国产精品久久久久久久久久99| 伊人久久国产精品| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲国产精品无码久久久久高潮| 怡红院一区二区| 99久久精品免费看国产小宝寻花| 精品久久久视频| 日本中文字幕精品| 日本高清免费不卡视频| 色一情一乱一乱一区91av| 国产女呦网站| 亚洲午夜久久久久久久久电影网| 亚洲国产精品久久久久秋霞影院| 日日夜夜亚洲精品| 欧美激情国内偷拍| 51ⅴ精品国产91久久久久久| 亚洲欧美综合7777色婷婷| 国产精品老熟女一区二区| 爽爽窝窝午夜精品一区二区| 久久综合桃花网| 国产亚洲精品久久久久久豆腐| 国产成人一二片| 中文字幕无线码一区| 久久综合免费视频影院| 性一交一乱一色一视频麻豆| aa视频在线免费观看| 国产精品都在这里| 精品亚洲porn| 91亚洲精品乱码久久久久久蜜桃| 亚洲激情在线看| 日韩美一区二区| 久久97超碰色| 美女视频黄a大片欧美| 激情综合激情| 最新欧美日韩亚洲| 国产精品狼人久久影院观看方式| 亚洲美女视频一区| 亚洲第一成年免费网站| 午夜理伦三级做爰电影| 无套内谢丰满少妇中文字幕| 欧美新色视频| 青青草视频成人| 欧美一级搡bbbb搡bbbb| 亚洲影影院av| 在线观看亚洲精品福利片| 亚洲一级在线观看| 亚洲欧美激情四射在线日| 国产精品九九| 欧美一级手机免费观看片| 国产在线不卡一卡二卡三卡四卡| igao视频网在线视频| 999在线免费视频| 国产经典三级在线| 粉嫩av一区| 亚洲图片视频小说| 日韩理论片av| 中文字幕一区二区三三| 91免费在线| 中文字幕日韩av综合精品| 人妻内射一区二区在线视频| 国产成人激情视频| 青春草免费在线视频| 成人免费在线观看av| 久久久亚洲精华液精华液精华液| 日韩在线观看视频一区| 久久性爱视频网站| 日韩精品一区二区三区四区视频| 日本免费一区二区三区等视频| 免费看大片爽| 99热这里只有精品1| 免费国产在线视频| 国产女同一区二区| 免费在线观看污| 精品久久ai| 免费日本视频一区| 91精品国产综合久久久蜜臀图片| 特级西西人体高清大胆| 日本一区二区免费看| 久久久精品福利| 国产福利短视频| 亚洲男同性恋视频| 国产一区丝袜| 日本黄色免费录像| 亚洲精品国产免费| 污污网站在线观看| 91成人短视频在线观看| 在线 亚洲欧美在线综合一区| 91热视频在线观看| 久久国产亚洲精品| 欧美va日韩va| 精选一区二区三区四区五区| 久久久久久久少妇| 久久久久久综合网天天| 日韩免费在线播放| 国产精品免费无码| 国产高清免费在线观看| 欧美国产日韩一二三区| 天堂地址在线www| 欧美日韩一区二区三区69堂| 老司机午夜在线视频| 国产免费叼嘿网站免费| 婷婷精品视频| 亚洲日本黄色片| 久久国产精品网站| 欧美另类69xxxx| 亚洲高清av一区二区三区| 最新超碰在线| 伊人久久大香线蕉精品| 91精品国产综合久久香蕉最新版| 亚洲一卡2卡三卡4卡2021四卡| 熟女人妇 成熟妇女系列视频| 亚洲狠狠婷婷综合久久久久图片| 99亚偷拍自图区亚洲| 国产精品天天av精麻传媒| 国产77777| 你懂的国产在线| 日韩黄色在线免费观看| 国产乱淫av麻豆国产免费| 日本丰满少妇黄大片在线观看| 久久国产精品免费精品3p| 亚洲熟女一区二区三区| 日韩激情av在线免费观看| 黄色精品免费看| 亚洲免费电影在线| 日韩在线视频不卡| 91精品国产经典在线观看| 在线观看一区欧美| 国产一级二级三级视频| 国产网站在线免费观看| 国产精品成人免费精品自在线观看| 麻豆成人久久精品二区三区小说| 成人一区而且| 亚洲精品www久久久久久广东| 一区二区三区精品久久久| 亚洲国产一区二区三区a毛片| 综合伊人久久| 2001个疯子在线观看| 日韩欧美aⅴ综合网站发布| 亚洲免费电影在线| 午夜视频福利在线观看| 麻豆91在线观看| 中文字幕成人免费视频| 精品乱码一区二区三区| 风间由美中文字幕在线看视频国产欧美| dy888午夜| 制服丝袜中文字幕在线观看| 日韩av在线高清| 久艹视频在线观看| 欧洲美女亚洲激情| 蜜桃自拍偷拍| 久久精品青青大伊人av| 国产美女www爽爽爽视频| 在线伊人免费视频| 国产精品久久久久久久久久久久久久| 麻豆免费视频网站入口| 超碰av在线免费观看| 欧美另类在线观看| 极品一区美女高清| 91国内精品| 日韩高清免费av| 99视频在线播放| 91精品国产乱码久久| 免费国产麻豆传| 国产白丝精品91爽爽久久| 国产美女无遮挡永久免费| 国产一区网站| 国产一区二区三区中文字幕| 66精品视频在线观看| 亚洲欧美国产精品| 久久午夜鲁丝片| 五月天免费网站| 欧美在线三区| 羞羞色午夜精品一区二区三区| 国产精品无码在线播放| 成年男人的天堂| 国产女人水真多18毛片18精品视频| 色操视频在线| 欧美亚洲爱爱另类综合| 国产熟女高潮视频| 三级久久三级久久| 麻豆av免费观看| 电影一区二区在线观看| 国产91在线播放精品| 在线看福利影| 欧美视频亚洲色图| 娇小发育未年成性色xxx8| 小小女视频网站色琼网站| 日本一道高清一区二区三区| 91亚洲人成网污www| 黄色片视频免费观看| 亚洲免费在线播放视频| 波多野结衣在线| 91中文在线视频| 奇米视频888战线精品播放| 久久天天做天天爱综合色| 日韩乱码一区二区三区| 欧洲在线视频一区| 成人欧美一区二区三区视频| 午夜精品久久久久久久久| 天堂va蜜桃一区二区三区漫画版| 韩国v欧美v日本v亚洲v| 国产又粗又猛又爽又黄的视频四季| 日韩精品视频一区二区| 超碰人人人人人人人| 亚洲一区视频在线播放| 欧美日韩一区 二区 三区 久久精品| 欧美精品情趣视频| 国产精品高颜值在线观看| 亚洲爽爆av| 香蕉视频国产在线| 欧洲视频一区二区三区| 性欧美欧美巨大69| 久青草免费视频| 狠狠躁夜夜躁人人爽视频| 国产精品久久婷婷| 91freevideo| 制服丝袜亚洲色图| 欧美丝袜一区二区| 91国产一区在线| 国产精品片aa在线观看| 911美女片黄在线观看游戏| 日韩av网站免费在线| 国产成人午夜电影| 久久久久久久福利| 热三久草你在线| 亚洲a区在线视频| 日韩一区日韩二区| 在线电影欧美日韩一区二区私密| 99视频有精品高清视频| 熟妇高潮精品一区二区三区| 久久国产精品久久w女人spa| 色棕色天天综合网| 亚洲欧洲一级| 日韩不卡av| 国产精品videossex撒尿| 丝袜亚洲欧美日韩综合| 中文文精品字幕一区二区| a屁视频一区二区三区四区| 日韩三级视频在线看| 亚洲第一综合天堂另类专| ckplayer中文字幕| 欧美成人sm免费视频| 无码视频在线观看| 欧美激情一区二区三区免费观看| 久久精品国产理论片免费| 精品福利视频一区二区三区| 香蕉人妻av久久久久天天| 久久亚洲欧美日韩精品专区| 久久亚洲影音av资源网| 国产日韩欧美三级| 青青草自拍偷拍| 成人综合专区| 91电影在线观看| 神马午夜伦理不卡| 不卡视频免费在线观看| 在线播放日韩精品| 国产在线高潮| 超碰97人人做人人爱少妇| 人人澡人人爽人人揉| 日韩精品一级毛片在线播放| 人成在线免费网站| jizz中文字幕| 中文在线а天堂av| 日韩免费成人网| 国产ts一区二区| 国产草草浮力影院| 美女国产精品| 川上优av一区二区线观看| 日本一区二区综合亚洲| 成人午夜电影网站| 成年人黄色片视频| 免费黄色小视频| 加勒比色综合久久久久久久久| 国产精品不卡一区二区三区| 5566中文字幕| 国产久一一精品| 国产一区二区三区不卡在线观看| 国产人妻精品一区二区三区不卡|