【发布时间】:2015-07-31 23:51:06
【问题描述】:
我有一行代码如下所示:
int method(void) const;
但我不确定 (void) 在参数中的作用,或者 const 的作用。这也应该是一个公共的“get”,我不确定如何在类中处理 (void) 和 const。
【问题讨论】:
我有一行代码如下所示:
int method(void) const;
但我不确定 (void) 在参数中的作用,或者 const 的作用。这也应该是一个公共的“get”,我不确定如何在类中处理 (void) 和 const。
【问题讨论】:
它什么也没做。 It is a carry-over from C 表示(在 C++ 中)该函数不接受任何参数。下面的签名是等价的
int method() const;
函数名称后面的const 表示(因为这意味着该函数是类方法)该函数不允许更改类实例的任何成员变量。
要实现“setter”和“getter”,你通常有这样的东西
class Foo()
{
public:
int GetX() const { return x; } // getter method
void SetX(int x_) { x = x_; } // setter method
private:
int x;
}
注意,我们可以声明getter const,因为它不会修改x 的值,但是setter 不能是const,因为该方法的全部目的是为x 分配一个新值.
【讨论】: