gpt4 book ai didi

c++ - 如果我的函数是常量,那么参数也必须是常量吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:19 24 4
gpt4 key购买 nike

假设我有一个函数不应修改类中的参数或任何其他内容,例如:

bool isPossible(int x1, int y1, int x2, int y2) const {
return x1 < x2 && y1 < y2;
}

为了清楚起见,我应该将所有参数以及函数本身设置为 const,还是仅将函数设置为 const 就足够了(我现在采用的方式)?

也就是说,它应该是这样的吗?

bool AABB::isPossible(const int& x1, const int& y1, const int& x2, const int& y2) const {
return *x1 < *x2 && *y1 < *y2;
}

最佳答案

函数是常量和函数的参数是常量在概念上没有关系。它们有不同的用途:

  • Const 函数表示该函数不应该改变类成员
  • 参数是函数的常量,参数的平均值不应在函数内部改变

因此,如果您希望函数参数为 const 或不是,您应该与函数本身是否为 const 分开决定。

例如,在您的特定情况下,您确实可以将函数参数声明为 const,因为您没有在函数内部修改它们(尽管在这种特定情况下它可能不会增加太多)。

如其他答案所述,将引用参数设置为 const 更有意义(在需要时)。

关于c++ - 如果我的函数是常量,那么参数也必须是常量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41451376/

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