Zee*_*ter 1 c++ overloading reference lvalue
我有两个重载函数,一个是"按值调用",另一个是"按引用调用".
int f (int a)
{
//code
}
int f (int &a)
{
//code
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我通过const int
,它会调用"按值传递"功能,为什么?
const int a=3;
f(a);//calls the call by value function.Why?
Run Code Online (Sandbox Code Playgroud)
因为a
是const int
,所以告诉编译器你不想修改a
.a
不能通过引用传递(仅限于const&
),因为如果它是引用,f
可以修改它,但f
不允许因为a
是const
.
所以合法的唯一重载就是价值传递 - int f(int a)
.
归档时间: |
|
查看次数: |
162 次 |
最近记录: |