报错源代码
class Solution {
public:
vector<int> a(31,-1);// 报错位置
int fib(int N)
{
if (N <= 1)
return N;
if (a[N] != -1)
return a[N];
a[N] = fib(N - 1) + fib(N - 2);
return a[N];
}
};
报错: Line 3: Char 15: error: expected parameter declarator vectora(31,-1);
报错解释:编译器无法区分该语句是成员变量声明还是成员函数声明
解决方法
方法:利用vector的赋值构造函数
class Solution {
public:
vector<int> a=vector<int>(31,-1);// 修改后
int fib(int N)
{
if (N <= 1)
return N;
if (a[N] != -1)
return a[N];
a[N] = fib(N - 1) + fib(N - 2);
return a[N];
}
};
参考
针对error: expected parameter declarator这一错误,有三种解决方法:在C++类中vector声明,报错 “expected parameter declarator”