C++ 中一个让我百思不得其解的问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 03:35:46
写了一个队列的程序,实现先进先出,后进后出;
#include <iostream>
using namespace std;

class Queue
{
private:
enum { MAX = 3 }; //设置队列容量
int que[MAX];
int head; //队列头
int tail; //队列尾

public:
Queue() //得到数据函数
{ head =0; tail =0; }
void put(int var)
{ que[++tail] = var;
if( tail == MAX-1) //实现尾的循环
tail=-1;

}
int get() //提取数据函数
{ int b;
b = que[++head];
if( head == MAX-1) //实现头的循环
head=-1;
return b;
}

};

int main()
{ int n=0;
Queue q1;
q1.put(11);
q1.put(22);
cout<<++n<<": "<< q1.get()<<endl;
q1.put(33);<

int get() //提取数据函数
{
return que[++head];
if( head == MAX-1) //实现头的循环
head=-1;

}
写在一个必执行的return后面的语句永远都不会执行的。和下面这个等价:
int get() //提取数据函数
{
return que[++head];
}