<c++primer7.2.2引用形参〉问题
c++primer7.2.2引用形参
3.更灵活的指向const的引用
........
// function takes a non-const reference parameter
int incr(int &val)
{
return ++val;
}
int main()
{
short v1 = 0;
const int v2 = 42;
int v3 = incr(v1); // error: v1 is not an int
v3 = incr(v2); // error: v2 is const
v3 = incr(0); // error: literals are not lvalues
v3 = incr(v1 + v2); // error: addition doesn 't yield an lvalue
int v4 = incr(v3); // ok: v3 is a non const object type int
}
------------------------
请问int v3都已经编译错了 怎么 int v4还ok了?
------解决方案--------------------
Primer里总是这么写东西,刚开始我也不适应.
其实我理解作者的意思就是说,
int v4 = incr(v3); // ok: v3 is a non const object type int
这句话,不考虑上面那些出错的东西(也就是把它们去掉),v3是一个int,所以这句话是应该可以通过的
------解决方案--------------------
终于又看完了PRIMER了..
c++primer7.2.2引用形参
3.更灵活的指向const的引用
........
// function takes a non-const reference parameter
int incr(int &val)
{
return ++val;
}
int main()
{
short v1 = 0;
const int v2 = 42;
int v3 = incr(v1); // error: v1 is not an int
v3 = incr(v2); // error: v2 is const
v3 = incr(0); // error: literals are not lvalues
v3 = incr(v1 + v2); // error: addition doesn 't yield an lvalue
int v4 = incr(v3); // ok: v3 is a non const object type int
}
------------------------
请问int v3都已经编译错了 怎么 int v4还ok了?
------解决方案--------------------
Primer里总是这么写东西,刚开始我也不适应.
其实我理解作者的意思就是说,
int v4 = incr(v3); // ok: v3 is a non const object type int
这句话,不考虑上面那些出错的东西(也就是把它们去掉),v3是一个int,所以这句话是应该可以通过的
------解决方案--------------------
终于又看完了PRIMER了..