c++——默認參數、函數占位參數


2 默認參數

/*1

C++中可以在函數聲明時為參數提供一個默認值,

         當函數調用時沒有指定這個參數的值,編譯器會自動用默認值代替

*/

void myPrint(int x = 3)

{

    printf("x:%d", x);

}

/*2

函數默認參數的規則

         只有參數列表后面部分的參數才可以提供默認參數值

         一旦在一個函數調用中開始使用默認參數值,那么這個參數后的所有參數都必須使用默認參數值

*/

 

//默認參數

void printAB(int x = 3)

{

         printf("x:%d\n", x);

}

 

//在默認參數規則 ,如果默認參數出現,那么右邊的都必須有默認參數

void printABC(int a, int b, int x = 3, int y=4, int z = 5)

{

         printf("x:%d\n", x);

}

int main62(int argc, char *argv[])

{

         printAB(2);

         printAB();

         system("pause");

         return 0;

}

3 函數占位參數

/*

函數占位參數 

占位參數只有參數類型聲明,而沒有參數名聲明

一般情況下,在函數體內部無法使用占位參數

*/

 

int func(int a, int b, int )

{

         return a + b;

}

 

int main01()

{

    //func(1, 2); //可以嗎?

         printf("func(1, 2, 3) = %d\n", func(1, 2, 3));

 

         getchar();        

         return 0;

}

 

4 默認參數和占位參數

/*

可以將占位參數與默認參數結合起來使用

         意義

         為以后程序的擴展留下線索 

         兼容C語言程序中可能出現的不規范寫法

         */

//C++可以聲明占位符參數,占位符參數一般用於程序擴展和對C代碼的兼容

int func2(int a, int b, int = 0)

{

         return a + b;

}

void main()

{

         //如果默認參數和占位參數在一起,都能調用起來

         func2(1, 2);

         func2(1, 2, 3);

         system("pause");

}

結論://如果默認參數和占位參數在一起,都能調用起來


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM