C++中默认参数

1、函数原型中可能会声明参数默认值,默认值是在没有提供参数值时使用的一个值。

比如函数原型 long myFunction(int x=50);

该原型就指出了一个参数默认值50,原型中声明参数值与函数定义中没有影响,函数定义中还可以使用:

long myFunction(int x){函数定义};

如果调用函数myFunction()时没有给定实参,那么就使用默认值x=50

2、参数默认值的注意事项:如果某个参数没有默认值,那么它前面所有的参数都不得使用默认值。

比如 long myFunction(int param1,int param2,int param3);仅当给param3使用默认值后才能给param2默认值,当且仅当param3,param2都给定默认值后才能给param1默认值。(没有写错,默认值的给定顺序就是从右到左,因为规律:形参从右到左设定默认值,实参从左到右赋值给形参)

3、一道使用默认参数的实例(《21天学会C++》P846.7):编写一个求立方体体积的函数。

#include<iostream>
using namespace std;
//int AreaCube(int length,int width=25,int height=1);
int CubeVolume(int length,int width=25,int height=1);//注意,这里如果设置成                                                     //int cubeVolume(int length=25,int width=1,int height)                                                   //就会报错,因为形参中要从右到左设置默认参数
int main()
{
    int length=100,width=25,height=10;
    int volume;
    volume=CubeVolume(length,width,height);
    cout<<"firt cube equals:"<<volume;
    volume=CubeVolume(length,width);//想使用哪个默认参数,直接调用函数时不调用这个参数就好了
    cout<<"second cube equals:"<<volume;
    volume=CubeVolume(length);
    cout<<"third cube equals:"<<volume;
    system("PAUSE");
    return 0;
}
int CubeVolume(int length,int width,int height)
{
    return (length*width*height);
}
时间: 2024-10-12 21:47:15

C++中默认参数的相关文章

在python函数中默认参数的一些坑

一.默认参数 python为了简化函数的调用,提供了默认参数机制: 这样在调用pow函数时,就可以省略最后一个参数不写: 在定义有默认参数的函数时,需要注意以下: 必选参数必须在前面,默认参数在后: 设置何种参数为默认参数?一般来说,将参数值变化小的设置为默认参数. python标准库实践 python内建函数: 函数签名可以看出,使用print('hello python')这样的简单调用的打印语句,实际上传入了许多默认值,默认参数使得函数的调用变得非常简单. 二.出错了的默认参数 引用一个官

Effective C++ .37 virtual函数中默认参数的表现

#include <iostream> #include <cstdlib> using namespace std; class Pen { public: virtual void write(int color = 0) { cout<<"write with color:"<<color<<endl; } }; class Pencil : public Pen{ public: void write(int colo

PHP函数中默认参数的的写法

函数可以定义 C++ 风格的标量参数默认值,如下所示: Example #3 在函数中使用默认参数 <?php function makecoffee($type = "cappuccino") { return "Making a cup of $type.\n"; } echo makecoffee(); echo makecoffee(null); echo makecoffee("espresso"); ?> 以上例程会输出:

.NET默认参数的用法

函数的默认参数值,即在定义参数的时候同时给它一个初始值.在调用函数的时候,我们可以省略含有默认值的参数.也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值. 一.默认参数常见场景 1.一个函数的可能会有很多参数,但是有些参数大部分时候都是固定值. 2.当一个函数需要增加参数时,为了不影响之前的用户,将新增加的参数作为默认参数. 二.默认参数实例 public void Func(string i = 1, string f = 2, string d = 3) {     

【转】深入理解C++的动态绑定和静态绑定 &amp; 不要重定义虚函数中的默认参数

为了支持c++的多态性,才用了动态绑定和静态绑定.理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误.需要理解四个名词:1.对象的静态类型:对象在声明时采用的类型.是在编译期确定的.2.对象的动态类型:目前所指对象的类型.是在运行期决定的.对象的动态类型可以更改,但是静态类型无法更改.关于对象的静态类型和动态类型,看一个示例: class B { } class C : public B { } class D : public B { } D* pD = new D();//p

python函数中的默认参数问题

Python 函数中,参数的传递本质上是一种赋值操作 def foo(arg): arg = 2 print(arg) a = 1 foo(a) # 输出:2 print(a) # 输出:1 def bar(args): args.append(1) b = [] print(b)# 输出:[] print(id(b)) # 输出:4324106952 bar(b) print(b) # 输出:[1] print(id(b)) # 输出:4324106952 def foo(x, a_list=

函数声明和函数定义中的默认参数浅析

默认参数是存在于函数的声明中,还是函数的定义中呢? 我在VS6.0和VS2008下做了如下实验,并做出了简单的总结,有不足或者不准确的地方,欢迎大家拍砖,我会及时修正相关内容. 实验一:默认参数不能同时存在于函数声明和函数定义中. #include <iostream> #include <tchar.h> using namespace std; void SetHeight(double dHeight = 183.5); int _tmain(int argc, TCHAR*

从 avformat_open_input 中解图ffmpeg准备decode默认参数的过程。

// ps 为成功打开媒体文件后的上下文.filename为要打开的文件名.// fmt为强制指定以何种格式打开文件,如果fmt为null,ffmpeg将自动分析媒体文件头,以媒体文件指定的格式(解码器和解码器参数)打开.// 该函数只分析解码器.解码器参数,并形成上下文,但不打开解码器.// 关于(*ps)->pb 信息如下:    /**     * AVFormatContext.pb * I/O context.     *     * - demuxing: either set by

js中function参数默认值

--在dreamweaver做网站时,函数定义是在一个*.js文件中,其中定义了一个func,有四个参数,function func(string1,url,flag,icon),然后在另一个asp中调用它func(a,b),那flag和icon的值是什么,怎么定义默认值?谢谢! --默认值应该是 undefined 在函数内预设数可以用 arguments[i] i就是你参数的位置 第一个为0 所以要设定 flag 的默认值 则可以这么写 function func(string1,url,f