当参数按值传递时,const
中的输入参数使用C++
限定符是否有意义?
例如,如果我传递像integer
这样的基本类型:
void function( const int aValue );
如果不使用const
void function( int aValue );
如果我传递自己的数据类型有什么不同吗?
void function( Data aData );
void function( const Data aData );
答案 0 :(得分:4)
由于您正在传递值const
在这种情况下无法阻止您修改原始对象。它确实阻止你修改函数中的副本。
答案 1 :(得分:2)
这意味着函数体无法修改参数。所以它确实为你提供了更多的程序稳定性。
同样的规则也适用于您自己的类,但如果值副本很昂贵,您可能希望通过const引用传递它们。
有些房子坚持风格:const
,除非有必要使用非常规。