在C ++中,(void)在参数中做了什么?

时间:2015-07-31 23:51:07

标签: c++ methods void

我有一行代码如下:

int method(void) const;

但是我不确定参数中的(void)是什么,或者const是什么。这也应该是一个公开的“获取”,我不确定如何在类中接近(void)和const。

1 个答案:

答案 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的新值。