C++未使用的变量警告,即使我在函数结束时返回它
C++ unused variable warning even when I returned it at the end of function
Table::Table(int n): maxGuests(n)
{
int numGuests = 0;
}
int Table::maxOccupancy(void)
{
return maxGuests;
}
int Table::currentOccupancy(void)
{
return numGuests;
}
如上面的代码所示,即使在访问器末尾返回它后,我也会收到未使用的numGuests
警告。为什么会这样呢?
谢谢:)
在代码中
Table::Table(int n): maxGuests(n)
{
int numGuests = 0;
}
定义了局部变量numGuests
,该变量不是类属性。这在任何地方都没有使用。因此,您会收到警告。 删除语句中的int
int numGuests = 0;
应该可以解决此问题。
或者更好的是,您可以更新代码以将此属性包含在初始值设定项列表本身中,如下所示:
Table::Table(int n) : maxGuests(n), numGuests(0)
{
}
代码段中的局部变量
numGuests
Table::Table(int n): maxGuests(n)
{
int numGuests = 0;
}
尚未使用。大概你想要的
struct Table
{
...
int numGuests = 0; // default value
const int maxGuests;
Table(int n) : maxGuests(n) {}
};
创建与类成员同名的局部变量。只需删除int
即可获得所需的内容:
Table::Table(int n): maxGuests(n)
{
numGuests = 0;
}
您正在创建一个变量,该变量"隐藏"了您尝试分配的属性。我不确定为什么您在这里使用两种完全不同的初始化方法,但您可以简化代码并修复错误,如下所示:
Table::Table(int n) : maxGuests(n), numGuests(0)
{
}
只要可行,就像这样初始化属性。在代码中执行此操作通常保留在不清楚将分配什么值、需要进行一些计算或需要委托给函数来执行此操作的情况。
相关文章:
- 在函数结束后使用指向变量的指针是否安全?
- 防止我的向量在调用它的函数结束时被删除
- C++未使用的变量警告,即使我在函数结束时返回它
- 函数结束后指针会死亡吗?
- 函数结束后覆盖的指针
- 如何在函数结束时有效地释放矢量内存
- 如何从另一个函数中调用的函数结束程序 (C++)
- 删除不会在函数结束时释放内存
- 函数结束后儿童节点的树递归C 缺失值
- 如何直接从构造函数结束C 代码
- 当函数结束时,它的局部变量被解除分配
- 私有成员"current"的值在成员函数结束时发生异常更改
- 函数结束时的C SEG故障.参考线=闭合支架
- 在函数结束后仅释放 Segfault 与 vsnprintf 一起消失
- 函数结束后更改值
- 强制程序在函数结束 (C++) 后释放在函数期间分配的内存
- 警告 #1011:非 void 函数结束时缺少返回语句
- 函数结束后丢失指针数据
- 通过函数结束程序
- Visual C++ 是否需要在'main'函数结束之前暂停应用程序