use*_*057 13 c++ syntax const reference
我应该确定此函数在语法上是否正确:
int f3(int i, int j) { const int& k=i; ++i; return k; }
我已经对其进行了测试,并且可以使用我的主要功能进行编译。
我不明白为什么会这样。
通过调用函数,可以肯定地f3创建变量的副本,i并j在新的存储空间中进行设置const int& k=i,然后将新创建k的存储空间设置为与复制的存储空间完全相同的空间i,因此可以进行任何更改,即增量鉴于已设置,++i将导致++k无法执行const
任何帮助是极大的赞赏
R S*_*ahu 27
鉴于已设置,增量
++i将导致++k不可能const
那是个误会。
您可能无法通过更改该对象的值,k但是仍然可以通过其他方式更改它。换句话说,++k不允许,但++i仍然允许,这将间接修改的值k。
这是来自非计算机世界的类比。
您可能会透过商店的橱窗浏览并看到里面的东西,但是您将无法更改商店里面的东西。但是,位于商店内部的员工可以更改商店的内容。您将从外部看到这种变化。const当员工无权访问或更改对商店的访问权限时,您可以访问或查看对商店的const访问权限。