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

C++默認(rèn)參數(shù)與函數(shù)重載及注意事項(xiàng)

 更新時(shí)間:2020年03月04日 10:21:40   作者:alex_  
這篇文章主要介紹了C++默認(rèn)參數(shù)與函數(shù)重載及注意事項(xiàng)包括語(yǔ)法與使用,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下

一、默認(rèn)參數(shù)

在C++中,可以為參數(shù)指定默認(rèn)值。在函數(shù)調(diào)用時(shí)沒(méi)有指定與形參相對(duì)應(yīng)的實(shí)參時(shí), 就自動(dòng)使用默認(rèn)參數(shù)。

默認(rèn)參數(shù)的語(yǔ)法與使用:

(1)在函數(shù)聲明或定義時(shí),直接對(duì)參數(shù)賦值。這就是默認(rèn)參數(shù);
(2)在函數(shù)調(diào)用時(shí),省略部分或全部參數(shù)。這時(shí)可以用默認(rèn)參數(shù)來(lái)代替。

注意:

(1)默認(rèn)參數(shù)只可在函數(shù)聲明中設(shè)定一次。只有在沒(méi)有函數(shù)聲明時(shí),才可以在函數(shù)定義中設(shè)定。(#add ,此句意為存在函數(shù)聲明和定義兩部分的時(shí)候。驗(yàn)證表明有這個(gè)限制,可以隨便,但出于規(guī)范,在聲明中指定)
(2)如果一個(gè)參數(shù)設(shè)定了缺省值時(shí),其右邊的參數(shù)都要有缺省值。(#add 這是定義時(shí),類(lèi)的成員函數(shù)的參數(shù)表在聲明時(shí)默認(rèn)參數(shù)位于參數(shù)表右部, 使用時(shí)該怎樣待總結(jié))
如:int mal(int a, int b=3, int c=6, int d=8) 正確,按從右到左順序設(shè)定默認(rèn)值。
int mal(int a=6, int b=3, int c=5, int d) 錯(cuò)誤,未按照從右到左設(shè)定默認(rèn)值。c設(shè)定缺省值了,而其右邊的d沒(méi)有缺省值。
(3)默認(rèn)參數(shù)調(diào)用時(shí),則遵循參數(shù)調(diào)用順序,自左到右逐個(gè)調(diào)用。這一點(diǎn)要與第(2)分清楚,不要混淆。(#add 神馬意思啊? 暫理解為兩個(gè)默認(rèn)參數(shù)之間的參數(shù)必須賦缺省值, 錯(cuò),意為調(diào)用函數(shù)時(shí),從左至右第一個(gè)實(shí)參即為第一個(gè)形參的實(shí)參,依此類(lèi)推)
如:

void mal(int a, int b=3, int c=5); //默認(rèn)參數(shù)
  mal(3, 8, 9 );//調(diào)用時(shí)有指定參數(shù),則不使用默認(rèn)參數(shù)
   mal(3, 5);     //調(diào)用時(shí)只指定兩個(gè)參數(shù),按從左到右順序調(diào)用,相當(dāng)于mal(3,5,5);
mal(3);     //調(diào)用時(shí)只指定1個(gè)參數(shù),按從左到右順序調(diào)用,相當(dāng)于mal(5,3,5);
mal( );      //錯(cuò)誤,因?yàn)閍沒(méi)有默認(rèn)值
mal(3, , 9)      //錯(cuò)誤,應(yīng)按從左到右順序逐個(gè)調(diào)用
再如: void mal(int a=8, int b=3, int c=5); //默認(rèn)參數(shù)
mal( ); //正確,調(diào)用所有默認(rèn)參數(shù),相當(dāng)于mal(8,3,5);

(4)默認(rèn)值可以是全局變量、全局常量,甚至是一個(gè)函數(shù)。但不可以是局部變量。因?yàn)槟J(rèn)參數(shù)的調(diào)用是在編譯時(shí)確定的,而局部變量位置與默認(rèn)值在編譯時(shí)無(wú)法確定。

二、函數(shù)重載

在相同的聲明域中,函數(shù)名相同,而參數(shù)表不同。通過(guò)函數(shù)的參數(shù)表而唯一標(biāo)識(shí)并且來(lái)區(qū)分函數(shù)的一種特殊的函數(shù)用法。

參數(shù)表的不同表現(xiàn)為:

1、參數(shù)類(lèi)型不同;
2、參數(shù)個(gè)數(shù)不同;

特別注意:返回類(lèi)型不同不可以作為函數(shù)重載的標(biāo)識(shí)。

函數(shù)重載的注意事項(xiàng)

1、函數(shù)的形參必須不同,或者個(gè)數(shù)不同,或者類(lèi)型不同,不能夠只依靠函數(shù)的返回值類(lèi)型不同或形參變量名不同來(lái)實(shí)現(xiàn)函數(shù)重載。
2、不要將不同功能的函數(shù)定義為重載函數(shù),以免出現(xiàn)對(duì)調(diào)用結(jié)果的誤解。如:

int add(int x,int y)

{

return x+y;

}

float add(float x,float y)

{

return x-y;

}

重載函數(shù)與默認(rèn)參數(shù)重疊導(dǎo)致的二義性問(wèn)題:

func(int); //重載函數(shù)1,只有1個(gè)參數(shù),無(wú)默認(rèn)參數(shù)
func(int, int =4); //重載函數(shù)2,有2個(gè)參數(shù),有1個(gè)默認(rèn)參數(shù)
func(int a=3, int b=4, int c=6); //重載函數(shù)3,有3個(gè)參數(shù),有3個(gè)默認(rèn)參數(shù)
fucn(float a=3.0, float b=4.0 float c=5.0); //重載函數(shù)4,有3個(gè)參數(shù),有3個(gè)默認(rèn)參數(shù)
fucn(float a=3.0, float b=4.0 float c=5.0 float d=7.9 ); //重載函數(shù)5,有4個(gè)參數(shù),有4個(gè)默認(rèn)參數(shù)

func(2); //可調(diào)用前3個(gè)函數(shù),出現(xiàn)二義性
func(2.0); //可調(diào)用后2個(gè)函數(shù),出現(xiàn)二義性

所以當(dāng)重載函數(shù)與默認(rèn)參數(shù)共同使用時(shí),要注意出現(xiàn)二義性問(wèn)題。

總結(jié)

到此這篇關(guān)于C++默認(rèn)參數(shù)與函數(shù)重載及注意事項(xiàng)的文章就介紹到這了,更多相關(guān)C++默認(rèn)參數(shù) 函數(shù)重載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解C語(yǔ)言?xún)?nèi)核字符串拷貝與比較

    詳解C語(yǔ)言?xún)?nèi)核字符串拷貝與比較

    本文將探索一下字符串的拷貝與比較,與應(yīng)用層不同內(nèi)核字符串拷貝與比較也需要使用內(nèi)核專(zhuān)用的API函數(shù),字符串的拷貝往往伴隨有內(nèi)核內(nèi)存分配,我們將首先簡(jiǎn)單介紹內(nèi)核如何分配堆空間,然后再以此為契機(jī)簡(jiǎn)介字符串的拷貝與比較
    2022-09-09
  • VC實(shí)現(xiàn)Windows多顯示器編程的方法

    VC實(shí)現(xiàn)Windows多顯示器編程的方法

    這篇文章主要介紹了VC實(shí)現(xiàn)Windows多顯示器編程的方法,涉及VC獲取屏幕分辨率及顯示參數(shù)等技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • C++使用MFC獲取PC硬件配置信息

    C++使用MFC獲取PC硬件配置信息

    這篇文章主要為大家詳細(xì)介紹了C++使用MFC獲取PC硬件配置信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • C語(yǔ)言中的內(nèi)存泄露 怎樣避免與檢測(cè)

    C語(yǔ)言中的內(nèi)存泄露 怎樣避免與檢測(cè)

    堆經(jīng)常會(huì)出現(xiàn)兩種類(lèi)型的問(wèn)題:1.釋放或改寫(xiě)仍在使用的內(nèi)存(稱(chēng)為:“內(nèi)存損壞”)。2.未釋放不再使用的內(nèi)存(稱(chēng)為:“內(nèi)存泄露”)。這是最難被調(diào)試發(fā)現(xiàn)的問(wèn)題之一
    2013-09-09
  • C++ opencv霍夫圓檢測(cè)使用案例詳解

    C++ opencv霍夫圓檢測(cè)使用案例詳解

    這篇文章主要介紹了C++ opencv霍夫圓檢測(cè)使用案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C++中基類(lèi)和派生類(lèi)之間的轉(zhuǎn)換實(shí)例教程

    C++中基類(lèi)和派生類(lèi)之間的轉(zhuǎn)換實(shí)例教程

    這篇文章主要介紹了C++中基類(lèi)和派生類(lèi)之間的轉(zhuǎn)換,有助于深入理解C++面向?qū)ο蟪绦蛟O(shè)計(jì),需要的朋友可以參考下
    2014-08-08
  • vscode工程中c_cpp_properties.json文件作用詳細(xì)說(shuō)明

    vscode工程中c_cpp_properties.json文件作用詳細(xì)說(shuō)明

    c_cpp_properties.json是Visual Studio Code的一個(gè)配置文件,用于定義C/C++編譯器的路徑、默認(rèn)包含路徑和預(yù)處理器定義,這篇文章主要給大家介紹了關(guān)于vscode工程中c_cpp_properties.json文件作用詳細(xì)說(shuō)明的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • C++二進(jìn)制翻轉(zhuǎn)實(shí)例分析

    C++二進(jìn)制翻轉(zhuǎn)實(shí)例分析

    這篇文章主要介紹了C++二進(jìn)制翻轉(zhuǎn),通過(guò)幾個(gè)實(shí)例分析二進(jìn)制翻轉(zhuǎn)算法的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2014-09-09
  • C語(yǔ)言實(shí)現(xiàn)中國(guó)象棋

    C語(yǔ)言實(shí)現(xiàn)中國(guó)象棋

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)中國(guó)象棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++實(shí)現(xiàn)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)

    C++實(shí)現(xiàn)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論

岐山县| 汉阴县| 陇南市| 丰镇市| 历史| 天峨县| 绿春县| 交城县| 砀山县| 兴山县| 丰原市| 海盐县| 黔江区| 罗甸县| 凤庆县| 太谷县| 高淳县| 海门市| 密山市| 黑山县| 琼海市| 额敏县| 托克托县| 长葛市| 星子县| 瑞安市| 荣成市| 安徽省| 定兴县| 昌都县| 米易县| 梁山县| 南靖县| 嘉义县| 宜兰市| 剑川县| 东山县| 宝鸡市| 洪泽县| 县级市| 漳州市|