C 預設引數函式及函式過載

2021-08-07 17:50:50 字數 1338 閱讀 7581

1.什麼是有預設引數函式

一般情況下,c語言中在函式呼叫時形參從實參取得,但是在c++中提供一種簡單處理方法給形參乙個預設值,當呼叫函式時,若該形參未傳入引數,則形參使用定義時的預設值。

2.**實現:

#include

using

namespace

std;

void fun(int a = 1,int b = 2)

int main()

執行結果:

3.由於實參與形參的結合是從左到右順序進行,所以有預設值的形參必須放在最右側。

例:

void fun(int a = 1,int b)   //錯誤

void fun(int b,int a = 1) //正確

同樣的,當呼叫函式時,若該形參未傳入引數,則形參使用定義時的預設值。

4.當函式呼叫在函式定義前時,需要在函式宣告時給出預設值,此時,在函式定義時就不需要給出預設值。

如果在宣告函式時給出了預設值,在定義函式時也給出了預設值不同編譯器可能給出報錯資訊,所以建議只在函式宣告時給出預設值以避免混淆。

1.什麼是函式過載?

在c++中乙個函式名可以定義多個函式,這些函式根據傳入引數個數及型別進行呼叫,這就是函式的過載。即對乙個函式名增加定義,使乙個函式名可以有多種用途。

2.**實現:

int add(int a,int b)         //int型別變數加法

double(double a, doublr b) //過載後增加double型別加法

當函式過載時傳參個數,引數型別,引數順序不允許全部相同;

當函式過載時,盡量使函式作用相近或同;

函式不能既為過載函式,又為有預設引數函式。

錯誤示範1:

int fun(int a)

void fun(int a)//不允許只有函式型別相同,錯誤

錯誤示範2:
int fun(int a = 1 )

int fun(int a = 1,int b = 2)//函式不能既為過載函式,又為有預設引數函式。錯誤

C 預設引數函式及函式過載

1.什麼是有預設引數函式 一般情況下,c語言中在函式呼叫時形參從實參取得,但是在c 中提供一種簡單處理方法給形參乙個預設值,當呼叫函式時,若該形參未傳入引數,則形參使用定義時的預設值。2.實現 include using namespace std void fun int a 1,int b 2 ...

C 函式過載, 預設引數

在我們的自然語言當中,乙個詞在不同的情景之下可能會有多重不同的含義,但是我們可以通過合理地判斷來確定該詞的真正含義,這種情況,我們可以說該詞被 過載 了.關於函式過載的概念 函式過載其實就是函式的一種特殊的情況,在我們的c 中允許在同一作用域當中宣告幾個功能類似的同名函式,但是這個同名函式的形參列表...

C 預設引數 函式過載

預設引數 預設引數是宣告或定義函式時為函式的引數指定乙個預設值。在呼叫該函式時,如果沒有指定實參則採用該預設值,否則使用指定的實參。例void testfunc int a 0 intmain 預設引數分類 1.全預設引數 void testfunc int a 10,int b 20,int c ...