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