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

C++初階教程之缺省參數(shù)與函數(shù)重載

 更新時(shí)間:2023年04月23日 10:22:46   作者:sukuni  
缺省參數(shù)是聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個(gè)缺省值,在調(diào)用該函數(shù)時(shí)如果沒有指定實(shí)參則采用該形參的缺省值,否則使用指定的實(shí)參,這篇文章主要給大家介紹了關(guān)于C++初階之缺省參數(shù)與函數(shù)重載的相關(guān)資料,需要的朋友可以參考下

一.缺省參數(shù)

C++祖師爺在用C寫代碼的時(shí)候,就覺得有些地方用著很不方便,于是就在C++設(shè)計(jì)了缺省參數(shù),在實(shí)現(xiàn)一些功能時(shí),用這個(gè)就方便了許多。

1.概念

缺省參數(shù)是聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個(gè)缺省值。在調(diào)用該函數(shù)時(shí):

      a.如果沒有指定實(shí)參則采用該形參的缺省值;

      b.否則使用指定的實(shí)參。

例:

2.分類

a.全缺省參數(shù):函數(shù)的所有參數(shù)都是缺省參數(shù)。

//全缺省參數(shù)
void func(int a=10,int b=20)
{
    return a+b;
}

b.半缺省參數(shù):函數(shù)的部分參數(shù)是缺省參數(shù),并不是非得有一半是缺省參數(shù)。

//半缺省參數(shù)
void func(int a,int b=20,int c=10)
{
    return a+b+c;
}

3.注意

a.缺省參數(shù)是從右往左,所以不能隔著給;

b.函數(shù)傳參是從左往右,所以不能跳著傳參;

c.函數(shù)的聲明和定義不能同時(shí)出現(xiàn)缺省參數(shù),只能在聲明出現(xiàn),定義不能出現(xiàn);

d.缺省值必須是常量或是全局變量。

二.函數(shù)重載

先來講講重載在生活中的例子。

簡(jiǎn)單來說就是一個(gè)詞的不同意思,我們來看一個(gè)笑話吧:

            國(guó)有兩個(gè)體育項(xiàng)目大家根本不用看,也不用擔(dān)心。一個(gè)是乒乓球,一個(gè)是男足。前者是“誰也贏不了!”,后者是“誰也贏不了!

同一詞”誰也贏不了“,表達(dá)的卻是不同的意思,這就是重載。

1.概念

函數(shù)重載:是函數(shù)的一種特殊情況,C++允許在同一作用域中聲明幾個(gè)功能類似的同名數(shù);

特點(diǎn):

          a.同名

          b.參數(shù)的類型,個(gè)數(shù),類型順序不同

          c.與返回值是否相同無關(guān)

注意:函數(shù)中有缺省參數(shù)也可以認(rèn)為是函數(shù)重載;

例:

void func()
{
    cout << 1 << endl;
}
 
void func(int a = 10)
{
    cout << 10 << endl;
}
 
//但這種情況要注意,如果這樣調(diào)用函數(shù):func(),就會(huì)報(bào)錯(cuò)

如果使用不當(dāng),會(huì)造成這個(gè)錯(cuò)誤:

注意以下情形并不構(gòu)成函數(shù)重載:

int add(int a, int b)
{
    return a + b;
}
 
int add(int b, int a)
{
    return a + b;
}

至于為什么不構(gòu)成,這就涉及到函數(shù)重載的原理了,下面讓我們一起來看看函數(shù)重載的原理吧。

2.C++支持函數(shù)重載的原理

C++編譯器中,調(diào)用函數(shù)時(shí),不是直接用函數(shù)名,而是會(huì)對(duì)函數(shù)名進(jìn)行修飾,根據(jù)修飾后的調(diào)用函數(shù)。而C編譯器并不會(huì)對(duì)函數(shù)進(jìn)行修飾,它是直接用函數(shù)名來調(diào)用函數(shù)的,所以C不支持函數(shù)重載。

所以上述不構(gòu)成函數(shù)重載的情形就得到了解釋。

不同環(huán)境下的修飾規(guī)則不同,vs的較為復(fù)雜,這里以Linux的修飾規(guī)則為例

Linux的修飾規(guī)則

_Z+函數(shù)名的長(zhǎng)度+函數(shù)名+參數(shù)類型的第一個(gè)字母

void  func(int a,double b);
//Linux環(huán)境下修飾后的:_Z4funcid

總結(jié)

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

相關(guān)文章

最新評(píng)論