gpt4 book ai didi

具有原始类型的 C++ const 修饰符

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:51 24 4
gpt4 key购买 nike

我应该注意使用原始类型的 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

由于该函数不访问对象的任何成员,因此我也会将其设为static

关于具有原始类型的 C++ const 修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52234159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com