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

前端之家收集整理的这篇文章主要介绍了具有基本类型的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
原文链接:https://www.f2er.com/c/117412.html

猜你在找的C&C++相关文章