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

C++深入分析講解函數(shù)與重載知識點

 更新時間:2022年06月02日 10:53:18   作者:Bright-SKY  
C++?允許多個函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function?Overloading),借助重載,一個函數(shù)名可以有多種用途

函數(shù)的默認(缺省)參數(shù)

1、默認參數(shù)的定義

c++在聲明函數(shù)原型的時可為一個或者多個參數(shù)指定默認(缺省)的參數(shù)值,當函數(shù)調(diào)用的時候如果沒有傳遞該參數(shù)值,編譯器會自動用默認值代替。

//函數(shù)的默認參數(shù) 指定x的默認值為10 y為20
int my_add(int x=10,int y=20)
{
    return x+y;
}
void test02()
{
    //如果函數(shù)傳參 那么各自的默認參數(shù)將無效
    cout<<"my_add = "<<my_add(100,200)<<endl;//300
    //如果某個參數(shù)未被傳參 將啟用默認值x=100 y使用默認值20
    cout<<"my_add = "<<my_add(100)<<endl;//120
    //x=10  y=20
    cout<<"my_add = "<<my_add()<<endl;//30
}

2、默認參數(shù)的注意點

(1)、函數(shù)的默認參數(shù)從左向右,如果一個參數(shù)設(shè)置了默認參數(shù),那么這個參數(shù)之后的參數(shù)都必須設(shè)置默認參數(shù)

//函數(shù)的默認參數(shù)從左向右
int func01(int x,int y=20,int z=30)
{
    return x+y+z;
}
void test03()
{
    cout<<func01(100,200)<<endl;//330
    cout<<func01(100)<<endl;//150
    //cout<<func01()<<endl;//err x沒有設(shè)置默認參數(shù) 必須傳參
}
int fun(int a, int b, int c=10);//正確
int fun(int a, int b=20, int c=10);//正確
int fun(int a=30, int b=20, int c=10);//正確
int fun(int a, int b=20, int c);//不正確

(2)、如果函數(shù)聲明和函數(shù)定義分開寫,函數(shù)聲明和函數(shù)定義不能同時設(shè)置默認參數(shù)

(3)、默認參數(shù)一般在函數(shù)聲明的時候 設(shè)置

fun.cpp

int func02(int x,int y,int z)
{
    return x+y+z;
}

main.cpp

//分文件 函數(shù)定義處的默認參數(shù) 是無效的
//建議:分文件是 在聲明 給默認參數(shù)
extern int func02(int x,int y=25,int z=35);
//extern int func02(int x,int y,int z);//err
void test04()
{
    cout<<func02(100,200)<<endl;//335
    cout<<func02(100)<<endl;//160
}

占位參數(shù)

c++在聲明函數(shù)時,可以設(shè)置占位參數(shù)。

占位參數(shù)只有參數(shù)類型聲明,而沒有參數(shù)名聲明。

如果函數(shù)的參數(shù)只有類型名 沒有形參名,這個參數(shù)就是占位參數(shù)

注意:

由于有類型名 所以 函數(shù)調(diào)用的時候 必須給占位參數(shù)傳參。

由于沒有形參名 所以 函數(shù)內(nèi)部 是無法使用占位參數(shù)。

1、占位參數(shù) 函數(shù)內(nèi)部無法使用

void func03(int x,int y,int)
{
    cout<<"x = "<<x<<", y = "<<y<<endl;
    return;
}
void test05()
{
    //func03(10,30,"hehe");//err "hehe"和int類型不符
    func03(10,30,40);
}

2、占位參數(shù) 可以設(shè)置成缺省參數(shù)

void TestFunc01(int a,int b,int=100)
{ 
    //函數(shù)內(nèi)部無法使用占位參數(shù) cout << "a + b = " << a + b << endl; 
}
TestFunc01(10, 20,30);//ok
TestFunc01(10, 20);//ok

什么時候用,在后面我們要講的操作符重載的后置++要用到這個

函數(shù)重載

函數(shù)重載體現(xiàn)了 c++ 的多態(tài)的特性

函數(shù)重載:同一個函數(shù)名在不同場景下可以具有不同的含義。

函數(shù)重載意義:方便的使用函數(shù)名。

函數(shù)重載的條件: 同一個作用域 參數(shù)個數(shù)不同 參數(shù)類型不同 參數(shù)順序不同(重要)

void myFunc(int a)
{
    cout<<"int的myFunc"<<endl;
}
void myFunc(int a,int b)
{
    cout<<"int,int 的myFunc"<<endl;
}
void myFunc(int a,double b)
{
    cout<<"int , double的myFunc"<<endl;
}
void myFunc(double a,int b)
{
    cout<<"double,int的myFunc"<<endl;
}
void test06()
{
    myFunc(10);//int
    myFunc(10,20);//int int
    myFunc(10,20.2);//int double
    myFunc(10.1,20);//double int
}

注意:

1、函數(shù)的返回值類型 不能作為 函數(shù)重載的依據(jù)。

2、函數(shù)重載和默認參數(shù)一起使用,需要額外注意二義性問題的產(chǎn)生

void myFunc02(int a)
{
    cout<<"int的myFunc02"<<endl;
}
void myFunc02(int a,int b=10)//默認參數(shù)
{
    cout<<"int,int 的myFunc02"<<endl;
}
void test07()
{
    //myFunc02(int a) 和 myFunc02(int a,int b=10)都能識別
    myFunc02(10);//二義性產(chǎn)生
}

3、函數(shù)重載的原理(了解)

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

相關(guān)文章

  • Jsoncpp的安裝與使用方式

    Jsoncpp的安裝與使用方式

    JsonCpp是一個用于解析和生成JSON數(shù)據(jù)的C++庫,它支持解析JSON文件或字符串到C++對象,以及將C++對象序列化回JSON格式,安裝JsonCpp可以通過命令安裝,默認安裝動態(tài)庫,JsonCpp的使用主要涉及三個類:Json::Value用于表示JSON值
    2025-01-01
  • C++20中的std::span詳解

    C++20中的std::span詳解

    span就是一個連續(xù)對象存儲的觀察者,類似std::string_view是string的觀察者,這篇文章主要介紹了C++20?std::span,需要的朋友可以參考下
    2023-03-03
  • C++中的函數(shù)修飾符深入講解

    C++中的函數(shù)修飾符深入講解

    這篇文章主要給大家介紹了關(guān)于C++中函數(shù)修飾符的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • c++中臨時變量不能作為非const的引用參數(shù)的方法

    c++中臨時變量不能作為非const的引用參數(shù)的方法

    下面小編就為大家?guī)硪黄猚++中臨時變量不能作為非const的引用參數(shù)的方法。小編覺得挺不錯的現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C++中關(guān)于getchar()的使用方法

    C++中關(guān)于getchar()的使用方法

    這篇文章主要介紹了C++中關(guān)于getchar()的使用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 數(shù)據(jù)結(jié)構(gòu)之Treap詳解

    數(shù)據(jù)結(jié)構(gòu)之Treap詳解

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之Treap詳解,本文講解了Treap的基本知識、Treap的基本操作、Treap的高級操作技巧等,需要的朋友可以參考下
    2014-08-08
  • 一文掌握C++ 智能指針全部用法

    一文掌握C++ 智能指針全部用法

    學(xué)習(xí)智能指針有很多好處,可以幫我們C++程序員管理動態(tài)分配的內(nèi)存的,它會幫助我們自動釋放new出來的內(nèi)存,從而避免內(nèi)存泄漏,感興趣的朋友跟隨小編一起看看吧
    2021-08-08
  • C++設(shè)計模式之工廠方法模式

    C++設(shè)計模式之工廠方法模式

    這篇文章主要介紹了C++設(shè)計模式之工廠方法模式,它是對簡單工廠模式的擴展,,需要的朋友可以參考下
    2014-09-09
  • C語言strcat函數(shù)詳解:字符串追加的利器

    C語言strcat函數(shù)詳解:字符串追加的利器

    strcat函數(shù)用于將源字符串追加到目標字符串的末尾,并返回一個指向目標字符串的指針,它可以實現(xiàn)字符串的拼接操作
    2024-08-08
  • C 語言條件運算符詳細講解

    C 語言條件運算符詳細講解

    本文主要介紹C語言中的條件運算符,并提供示例代碼以便大家學(xué)習(xí)參考,希望能幫助學(xué)習(xí) C語言的同學(xué)
    2016-07-07

最新評論

林甸县| 手机| 宕昌县| 乌什县| 平泉县| 六盘水市| 长岛县| 五华县| 泽普县| 静宁县| 清流县| 建平县| 辉县市| 弋阳县| 宜阳县| 天峨县| 贺兰县| 莱阳市| 赤城县| 宜宾市| 蓬溪县| 湖州市| 上犹县| 灵宝市| 大化| 诸暨市| 蒙自县| 赤水市| 九龙坡区| 天峨县| 延庆县| 年辖:市辖区| 凤庆县| 垫江县| 平山县| 仁布县| 苍溪县| 延庆县| 新沂市| 松桃| 常熟市|