C++未使用的变量警告,即使我在函数结束时返回它

Man*_*hah 3 c++

Table::Table(int n): maxGuests(n)
{
    int numGuests = 0;
}
int Table::maxOccupancy(void)
{
    return maxGuests;
}

int Table::currentOccupancy(void)
{
    return numGuests;
}
Run Code Online (Sandbox Code Playgroud)

如上面的代码所示,numGuests即使在我的访问器末尾返回它之后,我也会收到一个未使用的警告.那为什么会这样?

谢谢 :)

Riz*_*wan 8

在代码中

Table::Table(int n): maxGuests(n)
{
int numGuests = 0;
}
Run Code Online (Sandbox Code Playgroud)

numGuests定义了一个局部变量,它不是类属性.而这在任何地方都没有使用过.因此你得到了警告.int在语句中删除int numGuests = 0;应解决此问题.

或者您可以更新代码以将此属性包含在初始化列表本身中,如:

Table::Table(int n) : maxGuests(n), numGuests(0)
{
}
Run Code Online (Sandbox Code Playgroud)


Wal*_*ter 7

numGuests代码段中的局部变量

Table::Table(int n): maxGuests(n)
{
    int numGuests = 0;
}
Run Code Online (Sandbox Code Playgroud)

尚未使用过.大概你想要的

struct Table
{
    ...
    int numGuests = 0;      // default value
    const int maxGuests;
    Table(int n) : maxGuests(n) {}
};
Run Code Online (Sandbox Code Playgroud)