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

C++深入淺出講解缺省參數(shù)

 更新時間:2022年07月01日 11:03:45   作者:編程小程  
所謂缺省參數(shù),顧名思義,就是在聲明函數(shù)的某個參數(shù)的時候為之指定一個默認值,在調用該函數(shù)的時候如果采用該默認值,你就無須指定該參數(shù)。缺省參數(shù)使用主要規(guī)則:調用時你只能從最后一個參數(shù)開始進行省略,換句話說,如果你要省略一個參數(shù),你必須省略它后面所有的參數(shù)

缺省參數(shù)

一般情況下,函數(shù)調用時的實參個數(shù)應與形參相同,但為了更方便地使用函數(shù),C++也允許定義具有缺省參數(shù)的函數(shù),這種函數(shù)調用時,實參個數(shù)可以與形參不相同。

定義

缺省參數(shù)指在定義函數(shù)時為形參指定缺省值(默認值)。這樣的函數(shù)在調用時,對于缺省參數(shù),可以給出實參值,也可以不給出參數(shù)值。如果給出實參,將實參傳遞給形參進行調用,如果不給出實參,則按缺省值進行調用。

缺省參數(shù)的函數(shù)調用:缺省實參并不一定是常量表達式,可以是任意表達式,甚至可以通過函數(shù)調用給出。如果缺省實參是任意表達式,則函數(shù)每次被調用時該表達式被重新求值。但表達式必須有意義;

用法

如下代碼,我們定義一個函數(shù)func, 并給出其缺省參數(shù),可以看到,當我們調用該函數(shù)時,若不給參數(shù)或者只給部分參數(shù),那么函數(shù)將會調用其缺省值。

void func(int a = 10, int b = 20)
{
	cout << "a = " << a << " " << "b = " << b << endl;
}
int main()
{
	func(5, 6); 
	func(5);
	func();
	return 0;
}

缺省參數(shù)可以有多個,但所有缺省參數(shù)必須放在參數(shù)表的右側,即先定義所有的非缺省參數(shù),再定義缺省參數(shù)。這是因為在函數(shù)調用時,參數(shù)自左向右逐個匹配,當實參和形參個數(shù)不一致時只有這樣才不會產(chǎn)生二義性。

void fun(int a, int b = 23 , int c = 8000)
{
cout << "a = " << a << " b = " << b << " c = " << c << endl;
}
int main()
{
fun(12);
fun(10,20);
fun(10,20,30);
fun(10,,30); // error;
return 0;
}
  • 通常,缺省參數(shù)在公共頭文件包含的函數(shù)聲明中指定,而不是在函數(shù)的定義中指定。
  • 如果在函數(shù)的定義中指定缺省參數(shù)值,在公共頭文件包含的函數(shù)聲明中不能再次指定缺省參數(shù)值。
  • 缺省實參不一定必須是常量表達式 可以使用任意表達式。
// A.h
#ifndef A_H
#define A_H
void fun(int a, int b = 23 , int c = 8000);
// 也可以是下列形式
void fun(int ,int = 23,int = 8000); // ok;
#endif
// A.cpp
#include<iostream>
using namespace std;
#include"A.h"
//void fun(int a,int b = 10,int c = 20);//error;
//定義中不再給出缺省值
void fun(int a, int b, int c)
{
cout << "a = " << a << " b = " << b << " c = " << c << endl;
}
// MainTest.cpp
#include<iostream>
using namespace std;
#include"A.h"
int main()
{
fun(12);
fun(10,20);
fun(10,20,30);
return 0;
}

當缺省實參是一個表達式時 在函數(shù)被調用時該表達式被求值 。

int my_rand()
{
srand(time(NULL));
int ra = rand() % 100;
return ra;
}
void fun(int a, int b = my_rand())
{
cout << "a = " << a << " b= " << b << endl;
}
int main()
{
fun(12);
return 0;
}

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

相關文章

  • c++11中regex正則表達式示例簡述

    c++11中regex正則表達式示例簡述

    這篇文章主要給大家介紹了關于c++11中regex正則表達式的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c++11具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-11-11
  • C++中指針和引用的區(qū)別分析

    C++中指針和引用的區(qū)別分析

    這篇文章主要介紹了C++中指針和引用的區(qū)別,有需要的朋友可以參考一下
    2014-01-01
  • 淺談C++左值引用和右值引用

    淺談C++左值引用和右值引用

    這篇文章主要介紹了C++左值引用和右值引用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • C++中的覆蓋和隱藏詳解

    C++中的覆蓋和隱藏詳解

    這篇文章主要介紹了C++中重載、重寫(覆蓋)和隱藏的區(qū)別,是C++面向對象程序設計非常重要的概念,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-08-08
  • C語言的字符串函數(shù),內(nèi)存函數(shù)筆記詳解

    C語言的字符串函數(shù),內(nèi)存函數(shù)筆記詳解

    這篇文章主要給大家介紹了關于C語言字符串/內(nèi)存的相關函數(shù),文中通過示例代碼總結的非常詳細,對大家學習或者使用C語言具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2021-09-09
  • C語言實現(xiàn)簡易掃雷游戲

    C語言實現(xiàn)簡易掃雷游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡易掃雷游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語言實現(xiàn)wave波形

    C語言實現(xiàn)wave波形

    本文詳細講解了C語言實現(xiàn)wave波形的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-12-12
  • C++模板template用法小結(推薦)

    C++模板template用法小結(推薦)

    這篇文章主要介紹了C++模板template用法總結 ,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 原碼, 反碼與補碼基礎知識詳細介紹

    原碼, 反碼與補碼基礎知識詳細介紹

    這篇文章講解了計算機的原碼, 反碼和補碼. 并且進行了深入探求了為何要使用反碼和補碼, 以及更進一步的論證了為何可以用反碼, 補碼的加法計算原碼的減法,需要的朋友可以參考下
    2016-12-12
  • c++創(chuàng)建二維動態(tài)數(shù)組與內(nèi)存釋放問題

    c++創(chuàng)建二維動態(tài)數(shù)組與內(nèi)存釋放問題

    這篇文章主要介紹了c++創(chuàng)建二維動態(tài)數(shù)組與內(nèi)存釋放問題,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06

最新評論