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

C++簡明講解缺省參數(shù)與函數(shù)重載的用法

 更新時間:2022年06月18日 11:32:47   作者:努力變好的zz  
所謂缺省參數(shù),顧名思義,就是在聲明函數(shù)的某個參數(shù)的時候為之指定一個默認(rèn)值,在調(diào)用該函數(shù)的時候如果采用該默認(rèn)值,你就無須指定該參數(shù)。C++ 允許多個函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載,借助重載,一個函數(shù)名可以有多種用途

一、缺省參數(shù)

缺省參數(shù)形象來說就是"備胎"。

1.1缺省參數(shù)概念

缺省參數(shù)是聲明或定義函數(shù)時為函數(shù)的參數(shù)指定一個默認(rèn)值。在調(diào)用該函數(shù)時,如果沒有指定實參則采用該默認(rèn)值,否則使用指定的實參。

#include<iostream>
void P(int a = 3)
{
	printf("%d", a);
}
int main()
{
	P();//打印默認(rèn)值  3
	P(1);//打印傳送的值  1
	return 0;
}

1.2缺省參數(shù)分類

1.全缺省參數(shù)

void P(int a = 3,int c = 1,int b = 2)
{
	printf("%d", a);
	printf("%d", b);
	printf("%d", c);
}

二、函數(shù)重載

2.1函數(shù)重載概念

函數(shù)重載:是函數(shù)的一種特殊情況,C++允許在同一作用域中聲明幾個功能類似的同名函數(shù),這些同名函數(shù)的形參列表(參數(shù)個數(shù) 或 類型 或 順序)必須不同,常用來處理實現(xiàn)功能類似數(shù)據(jù)類型不同的問題

int Add(int left, int right)
{
return left+right;
}
double Add(double left, double right)
{
return left+right;
}
long Add(long left, long right)
{
return left+right;
}
int main()
{
Add(10, 20);
Add(10.0, 20.0);
Add(10L, 20L);
return 0;
}

觀察上方的函數(shù),我們會發(fā)現(xiàn)他們的函數(shù)名相同,參數(shù)不同(參數(shù)類型,參數(shù)順序等)只有滿足上述條件就可以進(jìn)行函數(shù)重載
注意:返回類型的不同的函數(shù)并不能進(jìn)行函數(shù)重載!

double Add(double left, double right)
{
return left+right;
}
long Add(double left, double right)
{
return left+right;
}

這就是錯誤的函數(shù)重載

2.2名字修飾

這里我們思考個問題,為什么C++支持函數(shù)重載而C語言卻不支持呢?

在C/C++中,一個程序要運(yùn)行起來,需要經(jīng)歷以下幾個階段:預(yù)處理、編譯、匯編、鏈接

1.實際我們的項目通常是由多個頭文件和多個源文件構(gòu)成,例如在(t.cpp中調(diào)用了f.cpp中的函數(shù)add)時,在鏈接前,t.o文件都沒有f.o中的add函數(shù)地址,

2.所以鏈接階段就是為了解決這個問題的,鏈接器看到t.o調(diào)用add,但是沒有add的地址,就會到f.o的符號表中找add的地址,然后鏈接到一起。

3.在鏈接時,每個編譯器的函數(shù)名修改規(guī)則的不一樣,就有可能導(dǎo)致鏈接的不同,如在gcc的編譯器下的函數(shù)修飾后名字不變。而g++的函數(shù)修飾后變成【_Z+函數(shù)長度+函數(shù)名+類型首字母】。

4.C++支持函數(shù)重載而C卻不支持函數(shù)重載的原因是:C語言同函數(shù)名時無法區(qū)分,而C++可以同過函數(shù)參數(shù)的不同來區(qū)別同名的函數(shù)!

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

相關(guān)文章

  • 你知道C++中new和delete為什么要匹配使用嗎

    你知道C++中new和delete為什么要匹配使用嗎

    關(guān)于 new 和 delete 的使用相信大家并不陌生,可是為什么使用 new 的時候要用 delete,使用 new[] 的時候又要用 delete[]呢?本文就來和大家詳細(xì)說說
    2023-01-01
  • C語言實現(xiàn)循環(huán)鏈表

    C語言實現(xiàn)循環(huán)鏈表

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)循環(huán)鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 基于C++實現(xiàn)高精度計時器

    基于C++實現(xiàn)高精度計時器

    chrono是C++ 11中的時間庫,它提供了跨平臺的高精度時鐘解決方案,精確到納秒級,本文主要為大家詳細(xì)介紹了如何使用chrono實現(xiàn)高精度計時器,感興趣的可以了解下
    2024-02-02
  • 詳解c++中的 static 關(guān)鍵字及作用

    詳解c++中的 static 關(guān)鍵字及作用

    這篇文章主要介紹了c++中的 static 關(guān)鍵字,在我們?nèi)粘J褂眠^程中,static通常有兩個作用,具體內(nèi)容在文中給大家詳細(xì)介紹,需要的朋友可以參考下
    2020-02-02
  • C++數(shù)據(jù)模型應(yīng)用在QML委托代理機(jī)制中

    C++數(shù)據(jù)模型應(yīng)用在QML委托代理機(jī)制中

    這篇文章主要介紹了在QML委托代理機(jī)制中使用C++數(shù)據(jù)模型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 利用C++實現(xiàn)簡易的.ini配置文件解析器

    利用C++實現(xiàn)簡易的.ini配置文件解析器

    這篇文章主要為大家詳細(xì)介紹了如何基于C++編寫一個簡易的.ini配置文件解析器,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • C語言俄羅斯方塊游戲課程設(shè)計

    C語言俄羅斯方塊游戲課程設(shè)計

    這篇文章主要為大家詳細(xì)介紹了C語言俄羅斯方塊游戲課程設(shè)計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 解決Visual?Studio?Code錯誤Cannot?build?and?debug?because?the

    解決Visual?Studio?Code錯誤Cannot?build?and?debug?because?

    這篇文章主要為大家介紹了解決Visual?Studio?Code錯誤Cannot?build?and?debug?because?the及分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Matlab實現(xiàn)繪制高階版本韋恩圖(upset圖)

    Matlab實現(xiàn)繪制高階版本韋恩圖(upset圖)

    韋恩圖隨著階數(shù)升高會越來越復(fù)雜,當(dāng)階數(shù)達(dá)到7或者以上時幾乎沒辦法繪制,但是使用upset圖卻可以比較輕易的繪制。本文就來用Matlab實現(xiàn)繪制upset圖,需要的可以參考一下
    2023-01-01
  • 數(shù)據(jù)結(jié)構(gòu) 數(shù)組順序存儲詳細(xì)介紹

    數(shù)據(jù)結(jié)構(gòu) 數(shù)組順序存儲詳細(xì)介紹

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu) 數(shù)組順序存儲詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評論