有效功能声明

-7 c++ methods declaration

我有一个抽象的C++问题,我和某人就此问题争论过:

其中哪一项可能是有效的函数声明:

int f ( int i=0, int j );
int f (int j, void k);
int f (int i, int u=0 );
int f (int * = 0);
Run Code Online (Sandbox Code Playgroud)

Pet*_*ker 8

其中三个可能有效.第三和第四显然是可以的.第一个可能在更广泛的背景下有效:

int f(int i, int j = 0);
int f(int i = 0, int j);
Run Code Online (Sandbox Code Playgroud)

允许函数声明添加其他默认参数,但不允许重复以前的默认值.所以第二行(你的第一个例子)在这里没问题.

  • 好样的!一个很好的答案,指出了一个可能被遗漏的奇怪怪癖,即使是那些通常非常了解语言的人也是如此.真的很不幸的是,它可能会丢失,因为它是对一个投票率很低的问题的回应. (2认同)
  • "我的上帝"我想."这位作者知道标准中最黑暗的角落." 然后我看到作者是谁,哦是的; 他是这样的. (2认同)