首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

默认参数的有关问题

2012-03-03 
默认参数的问题看了两本书在这个地方都K了:钱能C++P96(3)按他说的默认参数应从右到左逐渐定义例void func(

默认参数的问题

看了两本书在这个地方都K了:
钱能C++ P96 (3)
按他说的 默认参数应从右到左逐渐定义

  void func(int a,int b=2,int c=3,int d=4);  
那么 调用的方法规定为:
-------这个不太理解------------
调用:
func(2,15,, ,20); //Error 只能从右到左顺序匹配默认

那位能从调用函数 的STACK(函数调用机制)的角度解译一下吗?

同样的是 C++primer 3 潘的 
P239
他说的是调用的实参按位置解析,缺省参数只能有来替换函数缺少的尾部实参、、
这个乍样理解呢??????

例书:
  char *screenInit(int height=24,int width=80,char background='');
  
调用:
  char *screenInit( , , ‘?’);
请那位帮忙解译啊  



[解决办法]
调用函数的时候不能写出这种( , , ‘?’)参数表形式,这是错的;
 
对于这个函数char *screenInit(int height=24,int width=80,char background= ' '); 

想对它进行调用并且使用它的缺省值,只能是使用它从右向左的缺省值,如:

screenInit(25)将调用的是height=25,而后两个分别为width=80,background= ' '
[解决办法]
呵呵,才有时间来看回贴不好意思.
不能func(2,15, , ,20)这样,如果想用缺省值就一定要从右开始向左用,中间空,或者从左向右用缺省值都是错 的
[解决办法]
从右到左啊
左边如果有空的,右边就得都为空
而左边如果有提供实参,则右边就随你了
[解决办法]
要从左到右对齐

热点排行