具有基本类型的C const修饰符

我应该注意使用原始类型的const修饰符吗?哪一个在语法上更正确,为什么?

第一版:

float Foo::bar(float a,float b)
{
    return (a + b) / 2.0f;
}

第二版:

const float Foo::bar(const float a,const float b)
{
    return (a + b) / 2.0f;
}

第三版:

float Foo::bar(const float a,const float b)
{
    return (a + b) / 2.0f;
}

我知道传递给某些方法时会复制原始类型的变量,但是哪种方式更清楚?

解决方法

我会说第三个版本最“正确”.

您告诉编译器参数是const,这是正确的,因为您不修改它们.这可以帮助编译器优化传递参数以及计算.

并且返回类型不是const,因为调用者可能想要修改返回的值.如果调用者不想修改返回的值,则由调用者将其分配给const变量.

我也会在函数声明中添加const,因为该函数不会修改对象中的任何内容:

float Foo::bar(const float a,const float b) const

相关文章

一.C语言中的static关键字 在C语言中,static可以用来修饰局...
浅谈C/C++中的指针和数组(二) 前面已经讨论了指针...
浅谈C/C++中的指针和数组(一)指针是C/C++...
从两个例子分析C语言的声明 在读《C专家编程》一书的第三章时...
C语言文件操作解析(一)在讨论C语言文件操作之前,先了解一下...
C语言文件操作解析(三) 在前面已经讨论了文件打开操作,下面...