C++——带默认参数值的函数

函数在声明时可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的默认参数值。

int add(int x = 5,int y = 6)
{ return x + y;}
int main()
{
  add(10,20);//10+20
  add(10);//10+6
  add();//5 + 6
}

默认参数值的说明次序

有默认参数的形参必须在形参列表的最后,也就是说默认参数值的右面不能有无默认值的参数,因为调用时实参与形参的结合是从左到右的顺序。

int add(int x,int y = 5,int z = 6);//正确
int add(int x = 1,int y = 5,int z);//错误
int add(int x = 1,int y,int z = 6);//错误

默认参数值与函数的调用位置

如果一个函数有原型声明,并且原型声明在定义之前,则默认参数值必须在函数原型声明中给出;而如果只有函数的定义,或函数定义在前,则默认参数值需在函数定义中给出

#include<iostream>
using namespace std;

int add(int x = 5, int y = 6);

int main()
{
    cout<<add();
    system("pause");
    return 0;
}

int add(int x, int y)
{
    return x + y;
}

结果为11

#include<iostream>
using namespace std;

int add(int x = 5, int y = 6)
{
    return x + y;
}

int main()
{
    cout<<add();
    system("pause");
    return 0;
}

结果相同

带默认参数值的函数举例:

计算长方体的体积:子函数getVolume是计算体积的函数,有三个形参:lengrh(长),width(宽),height(高),其中width和height带有默认值

主函数中以不同形式调用getVoluime函数,分析程序的运行结果

#include<iostream>
#include<iomanip>
using namespace std;

int getVolume(int length, int width = 2, int height = 3);

int main()
{
    const int X = 10, Y = 12, Z = 15;
    cout << "Some box data is ";
    cout << getVolume(X,Y,Z) << endl;
    cout << "Some box data is ";
    cout << getVolume(X, Y) << endl;
    cout << "Some box data is ";
    cout << getVolume(X) << endl;
    system("pause");
    return 0;
}

int getVolume(int length, int width, int height)
{
    cout << setw(5) << length << setw(5) << width << setw(5) << height << endl;
    return length * width * height;
}

输出结果:

原文地址:https://www.cnblogs.com/ZZUGPY/p/8401365.html

时间: 2024-11-14 12:30:30

C++——带默认参数值的函数的相关文章

C++默认参数值函数

1.默认参数值的函数 C++语言允许在定义函数时给其中或某些形式参数(形参)指定默认值,方法就是在相应的形参后面写上“=默认值”,如果省略了对应位置上的实参的值,则在执行被调函数时以该形参的默认值进行运算. 本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!! 2.默认参数值函数注意事项 默认函数一般在函数声明中设置.如果程序中既有函数声明又有函数定义,则定义函数时不允许再定义参数的默认值:如果程序中只有函数定义而没有函数声明,则默认参数才可以出现在函数定义中: 默认参数的顺序.如果一

内联函数、默认参数和函数占位参数

内联函数 定义:内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质.内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处.编译时,类似宏替换,使用函数体替换调用处的函数名.一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理. C++中的const常量可以替代宏常数定义,如: const int A = 3; ? #define A 3 C++中是否有解决方案替代宏代码片段呢?(替代宏代码片段就可以避免宏的副作用!) C++

函数的默认参数值

给函数设置默认参数值有以下方法: 在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考.第一种方法: function example(a,b){   var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1    var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2    return a+b; } 注意以上函数也可写作如下: function example(){

C++函数带默认值的几种情形

1. 默认参数的规则 默认值定义 C++支持函数参数带默认值.这里所谓的默认值,指的是在调用函数时,可以不指定某些参数,编译器会自动把默认值传递到函数调用中. 默认值位置 指定默认值的参数必须位于形参列表最右端,从右往左.否则会出现二义性,编译器无法处理. 默认值设置 默认值可以在函数声明或函数定义中设置,只要保证不出现参数重定义即可. 2.默认参数示例 在函数声明中设置默认值 这是最常见的一种情形.主要有以下两种声明方式: 声明中给参数赋默认值 声明中用类型指定默认值 float area(f

带默认形参值的函数 PTA C++ 练习

带默认形参值的函数 设计一个带默认形参值的函数add,该函数有三个参数,可以实现三个整数类型的参数相加的操作,函数返回相加的结果.默认形参值从右至左分别是30.20. 裁判测试程序样例: #include <iostream> using namespace std; /* 请在这里填写答案 */ int main() { int a, b, c; cin >> a >> b >> c; cout << add(a) << endl;

tcl脚本学习十一:proc应用 (带默认参数)

lesson 11 : proc应用 (带默认参数) 1.//使用过程的时候,不一定输入所有的参数值.过程的输入参数可以有默认值.默认值由{默认参数名 默认值}指定.如果调用过程时没有指定这些参数的值则会使用其默认值,否则使用输入值来替代默认值.在使用默认参数的时候要注意,如果默认参数之后还有非默认参数,则在调用此过程的时候,默认参数的值也要求输入,否则会出错.这是因为 Tcl 调用过程的时候是根据位置来匹配参数和输入值的2.如果参数列表中最后一个参数是 args 的话,则过程可以接收可变数目的

重载函数和默认参数的函数

代码说事 重载的参数匹配 1 /// *重载的匹配顺序 1: 严格匹配 2: 转换匹配 2 /// *重申 : 重载的判断依据 !形参的! 个数 类型 位置 3 /// * 返回值类型不作为重载依据 4 /// * 默认参数 不能用于区分重载函数 5 6 #include <bits/stdc++.h> 7 using namespace std; 8 9 /// 转换 的匹配 10 double b; 11 void print(int a); 12 void print(char c);

C++函数:默认参数的函数

1.默认参数的目的 C++可以给函数定义默认参数值.通常,调用函数时,要为函数的每个参数给定对应的实参.例如: void delay(int loops); //函数声明 void delay(int loops) //函数定义 { if(100ps==0) return; for(int i=0;i<loops,i++); } 无论何时调用delay()函数,都必须给loops传一个值以确定时间.但有时需要用相同的实参反复调用delay()函数.C++可以给参数定义默认值.如果将delay(

c++有默认参数的函数---4

原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 1.默认参数的目的 C++可以给函数定义默认参数值.通常,调用函数时,要为函数的每个参数给定对应的实参.例如: void delay(int loops): //函数声明 void delay(int loops) //函数定义 { if(100ps==0) return: for(int i=0;i<loops,i++): } 无论何时调用delay()函数,都必须给loops传一个值以确定时间.但