zoukankan      html  css  js  c++  java
  • 默认参数、占位参数

    我们先看一个普通的函数

    int sum( int a, int b)
    {
    	return a + b;
    }  

    这是一个普通的函数,当我要调用他时传入2个参数  a 和 b 返回两个数的和。

    默认参数

    C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有指定这个参数的值,编译器会自动用默认值代替

    那么看一下下面这个例子

    int sum( int a, int b = 7)
    {
        return a + b;
    }
    
    int main(int argc, char const *argv[])
    {
        int a(5);
        int b(7);
        std::cout<<sum(a)<<std::endl;
          
        return 0;
    }  

    在调用函数的时候,我只给传入了一个参数,另外一个没有传,但是程序仍然返回给了我一个值

    当然了 我们也可以像刚才那样用 sum(a,b) 这样调用,同样的也会返回一个 12

    因为我在定义函数时,给第二个参数一个默认的参数 7 

    当我没有对这个参数赋值时,编译器会自动给他赋为7

    占位参数

    占位参数只有参数类型声明,而没有参数名声明一般情况下,在函数体内部无法使用占位参数

    举个栗子

     int sum( int a, int b,int)
    {
        return a + b ;
    }
    
    int main(int argc, char const *argv[])
    {
        int a(5);
        int b(7),c(6);
        std::cout<<sum(a,b,1)<<std::endl;
        return 0;
    }

    函数定义的时候多加了一个 int  但是我没有给 int 一个明确的形参,在调用的时候随便给了一个值

    占位参数的意义:为了以后程序扩展留下线索,同时兼容c的不规范写法

    也可以给占位参数一个默认参数

     int sum( int a, int b,int = 0)
    {
        return a + b ;
    }
    
    int main(int argc, char const *argv[])
    {
        int a(5);
        int b(7),c(6);
        std::cout<<sum(a,b)<<std::endl;
        return 0;
    }
  • 相关阅读:
    bzoj1660[Usaco2006 Nov]Bad Hair Day 乱发节*
    bzoj1624[Usaco2008 Open] Clear And Present Danger 寻宝之路*
    bzoj1617[Usaco2008 Mar]River Crossing渡河问题*
    bzoj1681[Usaco2005 Mar]Checking an Alibi 不在场的证明*
    bzoj1631[Usaco2007 Feb]Cow Party*
    bzoj1854[Scoi2010]游戏
    bzoj2338[HNOI2011]数矩形
    bzoj1096[ZJOI2007]仓库建设
    继承原理、派生重用
    面向对象三大特性——继承(含派生)
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/12624659.html
Copyright © 2011-2022 走看看