Net*_*ire -2 c++ arguments function
在功能
int foo(int i, int j)
{
return i + j;
}
Run Code Online (Sandbox Code Playgroud)
既i和j未初始化,所以这个函数可以用,只用两个参数来调用:
foo(5, 6); // 11
Run Code Online (Sandbox Code Playgroud)
好的,但是C++有默认参数,并且可能的定义如下:
int foo(int i = 1, int j = 2)
{
return i + j;
}
Run Code Online (Sandbox Code Playgroud)
这里既有i和j具有默认参数,然后调用:
foo(5, 6); // 11
foo(5); // 7
foo(); // 3
Run Code Online (Sandbox Code Playgroud)
是可能的.那么,为什么这个定义:
int foo(int i += 1, int j += 2)
{
return i + j;
}
Run Code Online (Sandbox Code Playgroud)
这些电话:
foo(5, 6); // 14
foo(5); // 8
foo(); // 3
Run Code Online (Sandbox Code Playgroud)
是不可能的?是否难以表示此定义或调用会导致一些问题?我想知道.
因为没有意义.分配值是一回事,增加预先存在的值是另一回事.你期望i在这个(无效的)代码片段中有什么价值?
// huh?
int i += 12;
Run Code Online (Sandbox Code Playgroud)
i 从来没有一个值,所以添加它是没有意义的.