【发布时间】:2017-09-06 04:22:42
【问题描述】:
我正在编写一个程序来跟踪我的锻炼进度并生成下一次锻炼。我正在使用一个类来检查最后一次锻炼并生成下一次锻炼。此类中的一个函数检查最后一次锻炼,如果满足某个条件,则为下一次锻炼增加重量。
我想为此函数使用一个布尔值数组,每种电梯类型都有一个值。这样一来,升降机可以独立处理,因为我无疑会进步不均。
该函数相当简单,我认为它不会有问题,但是当我尝试遍历布尔数组并将它们设置为如果满足条件,则为 true。
这是我遇到问题的代码:
void setNextWo(bool woProgression, int lastWoLastSetReps[6])
{
int i = 0;
for (i; i < 4; i++)
{
if (lastWoLastSetReps[i] >= 5)
{
woProgression[i] = true;
}
}
}
woProgression[i] 中的 i 带有红色波浪线下划线,并且正在生成错误。任何想法我做错了什么?
非常感谢
**编辑:我刚刚意识到我不应该通过引用传递数组。我在代码和帖子中对此进行了更改,但仍然收到相同的错误消息。
【问题讨论】:
-
您传递的是对布尔变量的引用,而不是指针(可以解释为数组)。编辑:刚刚看到您的更新,将重新分析。
-
你将
woProgression声明为一个简单的布尔变量,它应该是一个数组。 -
除了已经说过的:在c++中你应该避免使用c风格的数组。请改用
std::array<int,6> lastWoLastSetReps和std::array<bool,6> woProgression,并将它们作为引用或指针传递给您的函数。