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即使在我的访问器末尾返回它之后,我也会收到一个未使用的警告.那为什么会这样?
谢谢 :)
在代码中
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)
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)
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |