最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++函數(shù)重載的細節(jié)圖文詳解

 更新時間:2022年12月10日 09:02:50   作者:是星星鴨  
函數(shù)重載即函數(shù)名相同,函數(shù)形參列表不同(函數(shù)特征標(biāo)不同)的一類函數(shù)稱為函數(shù)重載,下面這篇文章主要給大家介紹了關(guān)于C++函數(shù)重載的相關(guān)資料,需要的朋友可以參考下

前言:如果不想看論證,可以直接點擊總結(jié),跳轉(zhuǎn)到最后

1、使用重載函數(shù)時,如果數(shù)據(jù)類型不匹配,C++嘗試使用類型轉(zhuǎn)換與形參進行匹配,如果轉(zhuǎn)換后有多個函數(shù)能匹配上,編譯器將報錯;

論證如下:

#include <iostream>
using namespace std;
 
void show(short no, string message)
{
	cout << "short 親愛的" << no << "號:" << message << endl;
}
 
void show(long no, string message)
{
	cout << "long 親愛的" << no << "號:" << message << endl;
}
 
void show(double no, string message)
{
	cout << "double 親愛的" << no << "號:" << message << endl;
}
 
int main()
{
	short a = 10;
	show(a,"我喜歡你");
 
	long b = 10;
	show(b,"我喜歡你");
 
	double c = 10;
	show(c,"我喜歡你");
 
 
	return 0;
}

運行:

各自都調(diào)用了自己對應(yīng)的函數(shù),沒有問題; 

我們改一下,把long和double的重載函數(shù)注釋掉:

我們定義一個double的變量,看他是否會使用short的show輸出:

成功輸出了,沒有問題,只不過編譯器提示了,double轉(zhuǎn)成short可能會確實精度,不管他

如果我們定義short的變量,調(diào)用double的函數(shù)呢?

也沒有問題,我們發(fā)現(xiàn)了編譯器會幫我們隱士轉(zhuǎn)換;

那么如果我們定義short變量,放開long和double的函數(shù),那么short變量會調(diào)用哪一個呢?

直接報錯,顯示有多個重載函數(shù);

觀點1論證成功! 

2、引用可以作為函數(shù)重載的條件,但是,調(diào)用重載函數(shù)的時候,如果實參是變量,編譯器將形參類型的本身和類型引用視為同意特征;

論證如下:

#include <iostream>
using namespace std;
 
void show(long no, string message)
{
	cout << "long 親愛的" << no << "號:" << message << endl;
}
 
void show(long& no, string message)
{
	cout << "long 親愛的" << no << "號:" << message << endl;
}
 
int main()
{
	long c = 10;
	show(c, "我喜歡你");
 
	return 0;
}

調(diào)用函數(shù)時,我們先傳入變量,運行一下:

無法運行,他說函數(shù)有多個重載;因為long和long&都能操作變量c; 

如果我們傳入常量呢?

成功的調(diào)用了long,因為不能對常量進行引用;

觀點2論證結(jié)束!

3、如果重載函數(shù)有默認參數(shù),調(diào)用函數(shù)時,可能導(dǎo)致匹配失?。?/strong>

論證如下:

觀點3論證結(jié)束!

4、const不能作為函數(shù)重載的特征;

論證如下:

觀點4論證結(jié)束!

5、返回值類型不同不能作為函數(shù)重載的特征;

論證如下:

觀點5論證結(jié)束! 

總結(jié)

1、使用重載函數(shù)時,如果數(shù)據(jù)類型不匹配,C++嘗試使用類型轉(zhuǎn)換與形參進行匹配,如果轉(zhuǎn)換后有多個函數(shù)能匹配上,編譯器將報錯;

2、引用可以作為函數(shù)重載的條件,但是,調(diào)用重載函數(shù)的時候,如果實參是變量,編譯器將形參類型的本身和類型引用視為同意特征;

3、如果重載函數(shù)有默認參數(shù),調(diào)用函數(shù)時,可能導(dǎo)致匹配失??;

4、const不能作為函數(shù)重載的特征;

5、返回值類型不同不能作為函數(shù)重載的特征;

到此這篇關(guān)于C++函數(shù)重載的文章就介紹到這了,更多相關(guān)C++函數(shù)重載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言中break與continue的用法和區(qū)別詳解

    C語言中break與continue的用法和區(qū)別詳解

    當(dāng)我們使用while或for循環(huán)時,如果想提前結(jié)束循環(huán)(在不滿足結(jié)束條件的情況下結(jié)束循環(huán)),可以使用break或continue關(guān)鍵字,這篇文章主要給大家介紹了關(guān)于C語言中break與continue的用法和區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • C語言中進程間通訊的方式詳解

    C語言中進程間通訊的方式詳解

    這篇文章主要為大家詳細介紹了C語言中幾種進程間通訊的方式,文中的示例代碼講解詳細,?對我們學(xué)習(xí)或工作有一定的借鑒價值,需要的可以參考一下
    2022-08-08
  • C++中的異或運算符^的使用方法

    C++中的異或運算符^的使用方法

    本篇文章對C++中的異或運算符^的使用方法進行的詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++設(shè)計模式之外觀模式

    C++設(shè)計模式之外觀模式

    這篇文章主要介紹了C++設(shè)計模式之外觀模式,本文詳細講解了C++中的Facade模式,并給出了實例代碼,需要的朋友可以參考下
    2014-10-10
  • C++淺析內(nèi)存分區(qū)模型概念與示例

    C++淺析內(nèi)存分區(qū)模型概念與示例

    在了解內(nèi)存分區(qū)之前,我們先來聊一聊為什么要進行內(nèi)存分區(qū)。在進行了內(nèi)存分區(qū)之后,在不同的區(qū)域存放的數(shù)據(jù),會有不同的生命周期,從而會讓程序員的編程變得更加靈活
    2022-09-09
  • 實例講解C++編程中l(wèi)ambda表達式的使用

    實例講解C++編程中l(wèi)ambda表達式的使用

    這篇文章主要介紹了C++編程中l(wèi)ambda表達式的使用實例,lambda表達式特性的引入在C++11中可謂千呼萬喚始出來,非常重要,需要的朋友可以參考下
    2016-01-01
  • C++11?nullptr實現(xiàn)初始化空指針

    C++11?nullptr實現(xiàn)初始化空指針

    避免產(chǎn)生“野指針”最有效的方法,就是在定義指針的同時完成初始化操作,本文主要介紹了C++11?nullptr初始化空指針,感興趣的可以了解一下
    2022-01-01
  • C語言編程中函數(shù)的基本學(xué)習(xí)教程

    C語言編程中函數(shù)的基本學(xué)習(xí)教程

    這篇文章主要介紹了C語言編程中函數(shù)的基本學(xué)習(xí)教程,其中著重講到了傳值調(diào)用與參數(shù),需要的朋友可以參考下
    2015-12-12
  • C語言接口與實現(xiàn)方法實例詳解

    C語言接口與實現(xiàn)方法實例詳解

    這篇文章主要介紹了C語言接口與實現(xiàn)方法,包括接口的概念、實現(xiàn)方法及抽象數(shù)據(jù)類型等,并配合實例予以說明,需要的朋友可以參考下
    2014-09-09
  • linux c++ 服務(wù)器端開發(fā)面試必看書籍整理

    linux c++ 服務(wù)器端開發(fā)面試必看書籍整理

    這篇文章主要介紹了linux c++ 服務(wù)器端開發(fā)面試必看書籍整理,需要的朋友可以參考下
    2020-02-02

最新評論

沅陵县| 新绛县| 永德县| 靖远县| 友谊县| 平阳县| 延长县| 克拉玛依市| 广饶县| 东乌珠穆沁旗| 中宁县| 全南县| 麻江县| 赣榆县| 平泉县| 乌拉特前旗| 博野县| 阿图什市| 新田县| 炎陵县| 平阳县| 永靖县| 临清市| 塔河县| 浦县| 措勤县| 宁明县| 玛沁县| 陆良县| 台东县| 班玛县| 武夷山市| 长葛市| 梅州市| 丹棱县| 开原市| 彰化县| 怀仁县| 涟水县| 元江| 醴陵市|