欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2022年12月10日 09:02:50   作者:是星星鴨  
函數(shù)重載即函數(shù)名相同,函數(shù)形參列表不同(函數(shù)特征標不同)的一類函數(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)致匹配失??;

論證如下:

觀點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)致匹配失?。?/p>

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

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

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

相關(guān)文章

  • C/C++實現(xiàn)控制臺輸出不同顏色字體的方法

    C/C++實現(xiàn)控制臺輸出不同顏色字體的方法

    這篇文章主要介紹了C/C++實現(xiàn)控制臺輸出不同顏色字體的方法,涉及C++控制臺文字屬性相關(guān)設(shè)置操作技巧,需要的朋友可以參考下
    2017-09-09
  • C語言預(yù)處理詳解

    C語言預(yù)處理詳解

    這篇文章主要給大家介紹了關(guān)于C語言之預(yù)處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • 詳解編譯器編譯原理

    詳解編譯器編譯原理

    這篇文章主要介紹了詳解編譯器編譯原理的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++實現(xiàn)俄羅斯方塊小游戲

    C++實現(xiàn)俄羅斯方塊小游戲

    這篇文章主要為大家詳細介紹了C++實現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 枚舉類型的定義和應(yīng)用總結(jié)

    枚舉類型的定義和應(yīng)用總結(jié)

    如果一種變量只有幾種可能的值,可以定義為枚舉類型。所謂“枚舉類型”是將變量的值一一列舉出來,變量的值只能在列舉出來的值的范圍內(nèi)
    2013-10-10
  • 解析為何要關(guān)閉數(shù)據(jù)庫連接,可不可以不關(guān)閉的問題詳解

    解析為何要關(guān)閉數(shù)據(jù)庫連接,可不可以不關(guān)閉的問題詳解

    本篇文章是對為何要關(guān)閉數(shù)據(jù)庫連接,可不可以不關(guān)閉的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 基于C語言實現(xiàn)的迷宮算法示例

    基于C語言實現(xiàn)的迷宮算法示例

    這篇文章主要介紹了基于C語言實現(xiàn)的迷宮算法,結(jié)合具體實例形式分析了C語言解決迷宮問題算法的實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下
    2017-09-09
  • C語言如何實現(xiàn)翻轉(zhuǎn)字符串中的單詞

    C語言如何實現(xiàn)翻轉(zhuǎn)字符串中的單詞

    這篇文章主要介紹了C語言如何實現(xiàn)翻轉(zhuǎn)字符串中的單詞,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • opencv 做人臉識別 opencv 人臉匹配分析

    opencv 做人臉識別 opencv 人臉匹配分析

    opencv 人臉識別通過級聯(lián)分類器對特征的分級篩選來確定是否是人臉,每個節(jié)點的正確識別率很高,但正確拒絕率很低,任一節(jié)點判斷沒有人臉特征則結(jié)束運算,宣布不是人臉
    2012-11-11
  • C++實現(xiàn)單鏈表按k值重新排序的方法

    C++實現(xiàn)單鏈表按k值重新排序的方法

    這篇文章主要介紹了C++實現(xiàn)單鏈表按k值重新排序的方法,結(jié)合實例形式分析了C++單鏈表中按照給定值進行判斷與排序的相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05

最新評論