在C ++函数的输入参数上使用const限定符是否有意义?

时间:2015-07-20 16:51:18

标签: c++

当参数按值传递时,const中的输入参数使用C++限定符是否有意义?

例如,如果我传递像integer这样的基本类型:

void function( const int aValue );

如果不使用const

,它会在相同的功能上获得任何好处
void function( int aValue );

如果我传递自己的数据类型有什么不同吗?

void function( Data aData );
void function( const Data aData );

2 个答案:

答案 0 :(得分:4)

由于您正在传递值const在这种情况下无法阻止您修改原始对象。它确实阻止你修改函数中的副本。

答案 1 :(得分:2)

这意味着函数体无法修改参数。所以它确实为你提供了更多的程序稳定性。

同样的规则也适用于您自己的类,但如果值副本很昂贵,您可能希望通过const引用传递它们。

有些房子坚持风格:const,除非有必要使用非常规。