- 指针也可以作为默认参数;
#include <iostream>
using namespace std;
void show(char *A = "asdz" ){
cout<<A<<endl;
}
int main(){
show();
}
- 默认参数必须放到形参列表的后边;
void func(int b, char *B, int a=1, char *A = "as"){}
void func(int a=1, int b, char *A = "as", char *B){}
- 如果某个形参使用了默认参数,那么后续的形参都必须使用默认参数;
这个比较好理解,结合第2条中的例子,void func(int b, char *B, int a=1, char *A = "as"){}
,如果在调用的时候,a
设置为了默认参数,再想给A
输入参数,那么编译器怎么知道这是a
的还是A
的参数呢。 - 函数声明的时候也可以设置默认参数,但是在给定作用域只能设置一次默认参数
这一条主要针对多文件编程,在函数需要声明的地方,可以多次声明该函数,但是每个默认参数只能被赋值一次,比如
void func(int b, char *B, char *A = "as");
void func(int b, char *B, int a=1);