显示编译错误,问题出在哪了?

请实现一个MyQueue类,实现出队,入队,求队列长度.

实现入队函数 void push(int x);
实现出队函数 int pop();
实现求队列长度函数 int size();

输入格式:
每个输入包含1个测试用例。每个测试用例第一行给出一个正整数 n (n <= 10^6) ,接下去n行每行一个数字,表示一种操作:
1 x : 表示从队尾插入x,0<=x<=2^31-1。
2 : 表示队首元素出队。
3 : 表示求队列长度。

输出格式:
对于操作2,若队列为空,则输出 “Invalid”,否则请输出队首元素。 对于操作3,请输出队列长度。
每个输出项最后换行。


#include<iostream>
using namespace std;
class MyQueue{
    public:
        static int queue[10000];
        static int count;
        static int size();
        static void push(int x);
        static int pop();
        
};
int MyQueue::count=0;
int MyQueue::pop()
{
    int pop_number=0;
    if(count==0)
    cout<<"Invalid"<<endl;
    else
    {
        pop_number=queue[0];
        int i=0;
        for(i=0;i<count;i++){
            queue[i]=queue[i+1];
        }
        queue[count-1]=0;
        count-=1;
    }
    return pop_number;
}
int MyQueue::size()
{
    return count;
}
void MyQueue::push(int x)
{
    queue[count]=x;
    count+=1;
}
int main()
{
    int n,i,x,y,count=0,pop_number=0;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>x;
        switch(x)
        {
            case 1:
            {
            cin>>y;
            MyQueue::push(x);
            break;        
            }
            case 2:
            {
            pop_number=MyQueue::pop();
            cout<<pop_number<<endl;
            break;
            }
            case 3:
            {
            count=MyQueue::size();
            cout<<count<<endl;
            break;
            }
            
        }
        
    }
    return 0;    
}



#include<iostream>
using namespace std;

class MyQueue
{
    private:
        int *queue;//[10000];
        int count;
        int max;//最大长度

    public:
        MyQueue(){max=count=0;queue=NULL;}
        MyQueue(int n);
        ~MyQueue();
        int size();
        void push(int x);
        int pop();

};
MyQueue::MyQueue(int n)
{
    max=n;
    count=0;
    queue=new int[n];
}
MyQueue::~MyQueue()
{
    delete[] queue;
}
//int MyQueue::count=0;
int MyQueue::pop()
{
    int pop_number=0;

//    if(count==0 || queue==NULL)//
//    {
//        cout<<"Invalid"<<endl;
//        return pop_number;
//    }
    if(count>0)//队列不为空则出队
    {
        pop_number=queue[0];

        for(int i=0; i<count-1; i++)//
        {
            queue[i]=queue[i+1];
        }

        //queue[count-1]=0;
        count-=1;
    }

    return pop_number;
}
int MyQueue::size()
{
    return count;
}
void MyQueue::push(int x)
{
    if(count==max)//队列已满
    {
        cout<<"Invalid"<<endl;
        return;
    }
    queue[count]=x;
    count+=1;
}
int main()
{
    int n,i,x,y,count=0,pop_number=0;
    cin>>n;
    MyQueue mq(n);

    for(i=0; i<n; i++)
    {
        cin>>x;

        switch(x)
        {
            case 1:
            {
                cin>>y;
                mq.push(x);
                break;
            }

            case 2:
            {
                if(mq.size()==0)
                    cout<<"Invalid"<<endl;
                else
                {
                    pop_number=mq.pop();
                    cout<<pop_number<<endl;
                }
                break;
            }

            case 3:
            {
                count=mq.size();
                cout<<count<<endl;
                break;
            }
        }
    }

    system("pause");
    return 0;
}

#include<iostream>

using namespace std;
class MyQueue { 
    int queue[1000] = {0};
    void fix();
public:
   
    int start = 0;;
    int end = 1;
    int size();
    void push(int x);
    int pop();

};

void MyQueue::fix()
{
    int num = end - start + 1;
    memcpy_s(queue,num*sizeof(int),queue+start, num * sizeof(int));
    start = 0;
    end = num - 1;
}
int MyQueue::pop()
{
    int pop_number = -1;
    if (end-start == 1)
        cout << "Invalid" << endl;
    else
    {
        pop_number = queue[++start];
    }
    return pop_number;
}

int MyQueue::size()
{
    return end - start - 1;;
}
void MyQueue::push(int x)
{
    if (end == 1000)
    {
        fix();
    }
    if (end == 1000)
    {
        cout << "is Full\n";
        return ;
    }
    queue[end++] = x;
}

int main()
{
    MyQueue Q;
    for (int i = 0 ; i < 99 ; i++)
    {
        Q.push(i);
        cout<<Q.pop()<<endl;
    }
    for (int i = 0; i < 1000; i++)
    {
        Q.push(i);
        //Q.pop();
    }
    while (Q.size() != 0)
    {
        cout << Q.pop() << endl;
    }
    int n, i, x, y, count = 0, pop_number = 0;
    cin >> n;
    for (i = 0; i < n; i++)
    {
        cin >> x;
        switch (x)
        {
        case 1:
        {
            cin >> y;
            Q.push(x);
            break;
        }
        case 2:
        {
            pop_number = Q.pop();
            cout << pop_number << endl;
            break;
        }
        case 3:
        {
            count = Q.size();
            cout << count << endl;
            break;
        }

        }

    }
    return 0;
}

C6262警告