我一直很好奇为什么c ++不允许声明一个静态函数参数,如下所示:
int test(static int a )
{
return a;
}
int main()
{
test(5);
return 0;
}
输出控制台显示:
error: storage class specifiers invalid in parameter declarations error: storage class specified for parameter 'a'
更新#1: 我可以达到以下要求:
int test(int a )
{
static int count = 0;// <-- I want to eliminate this line due to some project constraints.
count += a;
return count;
}
如果你建议,我不能通过引用传递参数,我已经尝试过考虑这个选项了。 如果还有其他方法可以实现上述行为,那么欢迎您。 感谢。
答案 0 :(得分:1)
要声明一个静态函数,你可以这样做
static int test(int a )
{
return a;
}
您正在尝试将“static int a”传递给函数,但没有理由这样做。你会改为声明
static int a;
在类中的某个地方,然后简单地将a传递给上面创建的静态方法
test(a);