溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用C++函數(shù)類型與重載函數(shù)

發(fā)布時(shí)間:2021-11-19 14:35:50 來源:億速云 閱讀:129 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“怎么使用C++函數(shù)類型與重載函數(shù)”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

    1.首先對(duì)重載函數(shù),明確函數(shù)的返回類型不能決定重載函數(shù)的類別,即

    int F(int ,int) ;//一個(gè)返回 int 類型的函數(shù)
    void F(int ,int);//一個(gè)無返回值的函數(shù)
    //兩者形參列表相同,返回值類型不同,但兩者不構(gòu)成重載函數(shù)

    2.注意形參列表中的默認(rèn)值,使用含默認(rèn)參數(shù)的重載函數(shù)時(shí)可能會(huì)產(chǎn)生二義性。例:

    int a = 0;
    int Max(int,int);
    int Max(int,int,int = 0);
    //則對(duì)Max(3,5)的調(diào)用會(huì)報(bào)錯(cuò)
     a = Max(3,5);           //錯(cuò)誤

    另外,對(duì)默認(rèn)參數(shù),應(yīng)該在函數(shù)名第一次給出的時(shí)候指定,通常在函數(shù)原型中。若已在函數(shù)原型中指定默認(rèn)參數(shù),則函數(shù)定義時(shí)不能重復(fù)給出。

    問題:

    在一道題中我看到了這樣一個(gè)問題,簡(jiǎn)述起來就是讓你調(diào)用一個(gè)值傳遞的重載函數(shù)和一個(gè)引用傳遞的重載函數(shù),

    #include<iostream>
    using namespace std;
    void F(int &a, int &b) {
    	a = a + b;
    	cout << a<<endl;
    }
    int F(int a, int b,) {
    	return a + b;
    }
    int main(){
    cout<<F(a,b);
    F(a,b);
    }

    此時(shí)調(diào)用兩個(gè)F函數(shù)就會(huì)報(bào)錯(cuò),那如何改變函數(shù)類型來避免函數(shù)調(diào)用不明確呢?

    我是這樣做的,

    #include<iostream>
    using namespace std;
    void F(int &a, int &b) {
    	a = a + b;
    	cout << a<<endl;
    }
    int F(int a, int b,int c) {
    	return a + b;
    }
    int main(){
    int a = 10;
    int b = 20;
    cout << F(a, b,1)<<endl;
    	F(a,b);
    }

    即通過一個(gè)無用變量來避免類型相似。

    “怎么使用C++函數(shù)類型與重載函數(shù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    c++
    AI