C++关于形参的const、reference的一些思考
2013-09-08 16:12 ruochen19 阅读(312) 评论(0) 收藏 举报第一次发表博客,有不对之处请原谅。
对于形参来说,可以是const或非const的,也可以是reference或非reference的。那么这样子就有四种情况。对于这四种情况的调用一定要比较清楚才行,更重要的是理解本质。
下面说说这四种情况。
1.在调用函数时,如果该函数使用的是非引用的非const形参,则既可以给该参数传递const的实参,也可以传递非const的实参,因为只是值的复制而已
2.对于函数的非引用的const形参,既可以传递const实参或非const实参,因为只是值的复制而已。
3.对于函数的引用的非const形参,则只能调用非const的实参,因为调用的实际上是这个实参的副本。如果调用了const的实参,那么这个值在函数内就有可能被改变,这是不被允许的。
1.在调用函数时,如果该函数使用的是非引用的非const形参,则既可以给该参数传递const的实参,也可以传递非const的实参,因为只是值的复制而已
2.对于函数的非引用的const形参,既可以传递const实参或非const实参,因为只是值的复制而已。
3.对于函数的引用的非const形参,则只能调用非const的实参,因为调用的实际上是这个实参的副本。如果调用了const的实参,那么这个值在函数内就有可能被改变,这是不被允许的。
4.对于函数的引用的const形参,那么它既可以调用const的实参,也可以调用非const的实参。因为虽然调用的是实参的副本,但是实参的值不在函数内不可能被改变,这是可以接受的。
在实际使用中,一般使用的形参都是const 的引用。这样比较不用复制,比较快,同时也可以保证实参的值在函数内不会改变
浙公网安备 33010602011771号