C++ 错误:ISO C++;禁止类内初始化非常量静态成员解决方案::i-Hanoi c的塔++;

C++ 错误:ISO C++;禁止类内初始化非常量静态成员解决方案::i-Hanoi c的塔++;,c++,class,static,initialization,definition,C++,Class,Static,Initialization,Definition,河内塔问题: //{驱动程序代码启动 //C语言的初始模板++ #include <bits/stdc++.h> using namespace std; // } Driver Code Ends // User function Template for C++ class Solution{ public: static int i=0; void hanoi(vector<int>& v,int N,int n,int start,i

河内塔问题: //{驱动程序代码启动 //C语言的初始模板++

#include <bits/stdc++.h>
using namespace std;

 // } Driver Code Ends
// User function Template for C++

class Solution{
public:
    static int i=0;
    void hanoi(vector<int>& v,int N,int n,int start,int end)
    {
        i++;
        if(i==n)
        {
            v[0]=start;
            v[1]=end;
            return;
        }
        int other=6-(start+end);
        hanoi(v,N-1,n,start,other);
        hanoi(v,N-1,n,other,end);
    }
    vector<int> shiftPile(int N, int n){
        // code here
        Solution::i=0;
        vector<int>v(2,0);
        hanoi(v,N,n,1,3);
        return v;
    }
};

// { Driver Code Starts.

int main(){
    int t;
    cin>>t;
    while(t--){
        int N, n;
        cin>>N>>n;
        
        Solution ob;
        vector<int> ans = ob.shiftPile(N, n);
        cout<<ans[0]<<" "<<ans[1]<<endl;
    }
    return 0;
}  // } Driver Code Ends
#包括
使用名称空间std;
//}驱动程序代码结束
C/C++的用户函数模板
类解决方案{
公众:
静态int i=0;
void hanoi(向量&v,整数N,整数N,整数开始,整数结束)
{
i++;
如果(i==n)
{
v[0]=开始;
v[1]=结束;
返回;
}
int other=6-(开始+结束);
河内(v、N-1、N、start、其他);
河内(v,N-1,N,另一端);
}
向量移位文件(int N,int N){
//代码在这里
解::i=0;
向量(2,0);
河内(v,N,N,1,3);
返回v;
}
};
//{驱动程序代码启动。
int main(){
int t;
cin>>t;
而(t--){
int N,N;
cin>>N>>N;
溶液ob;
向量ans=对象移位文件(N,N);

不能声明和定义静态数据成员,如

class Solution{
public:
    static int i;
//...
};

int Solution::i = 0;
尽管不清楚为什么变量
i
是用存储类说明符static声明的