假设我有一个不应修改类中的参数或其他任何功能的函数,例如:
bool isPossible(int x1, int y1, int x2, int y2) const {
return x1 < x2 && y1 < y2;
}
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,我应该将所有参数设置为const以及函数本身,还是仅将函数设置为const(我现在的方式)就足够了?
那就是,它应该是这样吗?
bool AABB::isPossible(const int& x1, const int& y1, const int& x2, const int& y2) const {
return *x1 < *x2 && *y1 < *y2;
}
Run Code Online (Sandbox Code Playgroud)
函数const是概念上与const函数的参数之间没有关系.它们用于不同的目的:
因此,如果您希望函数参数是const,那么您应该单独决定函数本身是const.
例如,在您的特定情况下,虽然您确实可以声明您的函数参数,const
因为您没有在函数内部修改它们(尽管可能在这种特殊情况下不会添加太多).
将参考参数设置为const更有意义(在需要时),如其他答案所述.