关于C++函数默认参数的问题,来一个整理。
一.形参&实参
形参和实参,虽然用了这么久了,不过概念上还是有点纠结的。这里简单总结一下:形参是说明参数类型的,实参就是函数实际操作的对象,我们定义一个函数的时候,写的那个是形参,我们调用函数的时候,给如的参数就是实参。
最近在百度知道上看到了一个关于形参实参最精辟的解释,无耻的引用一下:
比如说进女厕所,那就是女人才能进去 ,那么女人就是进女厕所这个操作的形参,林黛玉进去了,杨贵妃进去了,林黛玉,杨贵妃这些就是实参,李隆基要进的话那就类型不符
二.简单使用
C++函数支持默认参数,这是一个很方便的特性。我们在函数声明或者定义的时候,给函数的参数设置一个默认值,当调用时如果不给参数或者给出一部分参数,那么就使用函数设定的默认参数值。先看一个例子:
// C++Test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
void DefaultArguTest(int arg1, int arg2 = 2, int arg3 = 3)
{
cout<<arg1<<" "<<arg2<<" "<<arg3<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
//第2,3个参数给出了,则使用参数的值
cout<<"No Default argu:"<<endl;
DefaultArguTest(1,1,1);
//第3个参数没给出,则使用默认值
cout<<"Default argu3:"<<endl;
DefaultArguTest(1,1);
//第2,3个参数都没给出,使用默认值
cout<<"Default argu2,3:"<<endl;
DefaultArguTest(1);