zoukankan      html  css  js  c++  java
  • c++中 函数的默认参数 学习

        默认参数指的是当函数调用中省略了实参时     自动使用一个默认的值。

    对于带参数列表的函数,必须从右向左添加默认值  (就是说她的右边肯定是先有默认的值)

    fun(int ,1,2,3) 不能 fun(int,1,int,int)等情况!  够清楚了吧!!

    1 char* left(const char* str, int n=1);
    2 int main()
    3 {
    4 }
    5 
    6 char* left(const char* str, int n = 1)//错误
    7 {
    8 }

    1 声明时带有默认参数,实现时没有默认值 (ok)

    2 实现时带有默认参数,声明时没有默认值(ok)

    1 char* left(const char* str, int n=1);
    2 int main()
    3 {
    4 }
    5 
    6 char* left(const char* str, int n )
    7 {
    8 
    9 }
    1 char* left(const char* str, int n);
    2 int main()
    3 {
    4 
    5 }
    6 char* left(const char* str, int n = 1)
    7 {
    8 
    9 }

    使用默认参数来替代函数重载:

    如果一组重载函数(可能带有默认参数)允许相同实參个数的调用,将会引起调用的二义性。 

    1 void func(int); //重载函数之一
    2 void func(intint=4); //重载函数之二,带有默认参数
    3 void func(int=3int=4); //重载函数之三,带有默认参数
    4 
    5 func(7); //error: 到底调用3个重载函数中的哪个?
    6 func(20,30) //error:到底调用后面2个重载函数的哪个?

    小心小心!!!!!!!!!!!!!

      

  • 相关阅读:
    判断有向无环图(DAG)
    单向连通图 Going from u to v or from v to u? poj2762
    百度地图的实时路况 2016 计蒜之道 复赛
    快速模取幂
    fibonacci数列(二)_矩阵快速幂
    数与矩阵快速幂基本知识
    Brute-force Algorithm_矩阵快速幂&&欧拉公式*****
    Nearest number
    Zipper_DP
    Jumping Cows_贪心
  • 原文地址:https://www.cnblogs.com/zhangkele/p/7628840.html
Copyright © 2011-2022 走看看