【发布时间】:2015-02-10 12:57:25
【问题描述】:
我正在为我的 CS 课做一个作业,它使用 const,我对何时使用它们感到有点困惑。
这三个函数有什么区别?
int const function(parameters)
int function(const parameters)
int function(parameters) const
提前致谢!
【问题讨论】:
我正在为我的 CS 课做一个作业,它使用 const,我对何时使用它们感到有点困惑。
这三个函数有什么区别?
int const function(parameters)
int function(const parameters)
int function(parameters) const
提前致谢!
【问题讨论】:
考虑到你在谈论c++:
const int function(parameters) // instead of your int const function(parameters)
将返回一个常量到int
int function(const parameters)
参数在方法内部将被视为常量,这意味着它们不会被改变。
int function(parameters) const
这个函数不会改变任何类变量(如果成员不可变)
【讨论】:
int const function(parameters)
const 是多余的。将诸如int 之类的简单类型声明为const 返回值是没有用的,尽管它可能有助于使代码更加自文档化。但是,如果返回类型是引用或指针,那么情况就会发生变化。
int function(const parameters)
传递给function 的parameters 是const,因此无法修改。
int function(parameters) const
function 是一个方法,它不会修改被调用的对象实例中的任何成员变量。
【讨论】:
int 不是问题,但可能对于类类型),因此不推荐。