我有一个抽象的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)
其中三个可能有效.第三和第四显然是可以的.第一个可能在更广泛的背景下有效:
int f(int i, int j = 0);
int f(int i = 0, int j);
Run Code Online (Sandbox Code Playgroud)
允许函数声明添加其他默认参数,但不允许重复以前的默认值.所以第二行(你的第一个例子)在这里没问题.