void foo (int i , int k = 7) {
cout << k;
}
int main(){
foo(1, 2);
}
Run Code Online (Sandbox Code Playgroud)
k将输出2.我的问题是,foo以什么顺序初始化参数并获取参数?什么是foo经历的过程2.谢谢
void foo (int i , int k = 7);
Run Code Online (Sandbox Code Playgroud)
这个原型意味着如果你只用第一个参数调用foo,那么第二个被隐式设置为7.
foo(1, 2); // i=1, k=2
foo(5); // <==> foo(5, 7) i=1, k=7
Run Code Online (Sandbox Code Playgroud)
编译时在编译时解析此机制.每当缺少param k调用foo时,编译器会自动将其插入值7(即foo(5)).如果没有丢失,则采用实际参数(即foo(1, 2)).
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |