我有一行代码如下:
int method(void) const;
但是我不确定参数中的(void)是什么,或者const是什么。这也应该是一个公开的“获取”,我不确定如何在类中接近(void)和const。
答案 0 :(得分:5)
它没有做任何事情。 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
的新值。