C/C++函数缺省参数是否实际传入如何判断? 50
如何象VB的IsMissing函数判断缺省参数是否传入?如voidfunc(inta,intb=0,...){//b是否真地传入了?}...
如何象 VB 的 IsMissing 函数判断缺省参数是否传入?如
void func(int a, int b=0, ...){
// b 是否真地传入了?
} 展开
void func(int a, int b=0, ...){
// b 是否真地传入了?
} 展开
4个回答
展开全部
C/C++ 函数没有缺省参数。
C/C++函数 声明和定义时用 形参。调用 运行时 用 实参。
实参的值,需要在调用前给定,如果它是全局量,初始化为0,没有默认值。
C++ 允许 有同名 函数,同名 函数 用 参数个数 和 参数类型 区分。
例如:area(float a, float b){}; area(float r){} ;
调用时,
只给1个实参,就调用后者area(r),不会调用 area(float a, float b){};
给2个实参,就调用前者area(a,b).
C/C++函数 声明和定义时用 形参。调用 运行时 用 实参。
实参的值,需要在调用前给定,如果它是全局量,初始化为0,没有默认值。
C++ 允许 有同名 函数,同名 函数 用 参数个数 和 参数类型 区分。
例如:area(float a, float b){}; area(float r){} ;
调用时,
只给1个实参,就调用后者area(r),不会调用 area(float a, float b){};
给2个实参,就调用前者area(a,b).
展开全部
应该是只能判断b是否0,但是没有办法确定是否传入或者是编译时填进去的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-10-27
展开全部
如果只有一个函数func(int a, int b=0,....),那么你在调用这个函数的时候写func(1),那么传入了b以及后面形参的默认值。
如果有两个函数func(int a, int b=0,....)和func(int a),如果在调用函数时写func(1),将会优先匹配只有一个参数的函数。
如果有两个函数func(int a, int b=0,....)和func(int a),如果在调用函数时写func(1),将会优先匹配只有一个参数的函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询