标题:为什么会出现这个问题呀
取消只看楼主
淡雅蜻蜓
Rank: 1
等 级:新手上路
帖 子:23
专家分:8
注 册:2010-11-21
结帖率:25%
已结贴  问题点数:5 回复次数:4 
为什么会出现这个问题呀
error C2371: 'bool' : redefinition; different basic types
头文件1.h
const int maxSize=50;
 enum bool {false,true};
template<class T>
class Queue{
public:
    Queue(){};
    ~Queue(){};
    virtual void EnQueue(const T& x)=0;
    virtual bool DeQueue(T& x)=0;
    virtual bool getFront(T& x)=0;
    virtual bool  IsEmpty()const=0;
    virtual bool IsFull()const=0;
    virtual int getSize()const=0;
};
头文件sequeue.h
template<class T>
class SeQueue:public Queue<T>{
    public:
        SeQueue(int sz=10);
        ~SeQueue(){delete[] elements;}
        bool int  DeQueue(T& x);
        bool getFront(T& x);
        void makeEmpty(){front=rear=0;}
        bool  IsEmpty()const{return(front==rear)?true:false;}
        bool  IsFull()const{return((rear+1)%maxSize==front)?true:false;}
        int getSize()const{return(rear-front+maxSize)%maxSize;}
        friend ostream& operator <<(ostream& os,SeQueue<T>& Q)
        {protected:
        int rear,front;
        T *elements;
        int maxSize;
        };
源文件
#include<assert.h>
#include<iostream.h>
#include"1.h"
#include"sequeue.h"

 template<class T>
     SeQueue<T>::SeQueue(int sz):front(0),rear(0),maxSize(0){
     elements=new T[maxSize];
     assert (elements!=NULL);
 };//建立空队列

template<class T>
     bool SeQueue<T>::EnQueue(const T& x){
     if (IsFull()==true) return false;
     elements[rear]=x;
     rear=(rear+1)%maxSize;
     return true;
};//入队


template<class T>
     bool SeQueue<T>::DeQueue(const T& x){
     if (IsEmpty()==true) return false;
     x=elements[front];
     front=(front+1)%maxSize;
     return true;
};//出队


template<class T>
     bool SeQueue<T>::DeQueue(const T& x){
     if (IsEmpty()==true) return false;
     x=elements[front];
     return true;
};//取对头


template<class T>
ostream& operator <<(ostream& os,SeQueue<T>& Q){
    os<<"front="<<Q.front<<",rear="<<Q.rear<<endl;
    for(int i=front;i!=rear;i=(i+1)%maxSize;)
        os<<i<<":"<<Q.elements[i]<<endl;
    return os;
};//元素的重载




void main()
{   
    int maxSize,number,select=5;
    char s;
    cout<<"\n请输入对的大小:"<<endl;
    cin>>maxSize;
    Queue<char> Queue(maxSize);
    while(select!=4)
     {
        cout<<"\n\t\t\t************操作菜单*****************\n";
        cout<<"\t\t\t\t 1 入队"<<endl;
        cout<<"\t\t\t\t 2 出队"<<endl;
        cout<<"\t\t\t\t 3 取队头元素"<<endl;
        cout<<"\t\t\t\t 4 退出"<<endl;
        cout<<"\t\t\t************请选择序号*****************\n";
        cin>>select;
        switch(select)
        {
         case 1:
            cout<<"请输入一个队列并以.结束"<<endl;
            cin>>s;
            while(s!='.')
            {
         SeQueue.EnQueue(s);
              cin>>s
             }
            break;
         case 2:
             cout<<"请输入出队字符数:";
             cin>>number;
             cout<<"\n出队元素依次为:";
             for(int i=0;i<number;i++)
               if (Se!Queue.IsEmpty()) cout<<SeQueue.DeQueue()<<"  ";
             break;
         case 3:
             if (SeQueue.IsEmpty()){cout<<"队空"<<endl;break;}
             cout<<"队头元素为:"<<SeQueue.getFront();
             break;
         case 4:
             break;
        }
     }
       cout<<"谢谢使用"<<endl;
}


   
   


搜索更多相关主题的帖子: class void different public 
2010-11-26 19:50
淡雅蜻蜓
Rank: 1
等 级:新手上路
帖 子:23
专家分:8
注 册:2010-11-21
得分:0 
回复 2楼 玩出来的代码
你的具体意思是?
2010-11-26 20:26
淡雅蜻蜓
Rank: 1
等 级:新手上路
帖 子:23
专家分:8
注 册:2010-11-21
得分:0 
回复 4楼 玩出来的代码
那要怎么改?
2010-11-26 21:08
淡雅蜻蜓
Rank: 1
等 级:新手上路
帖 子:23
专家分:8
注 册:2010-11-21
得分:0 
回复 9楼 玩出来的代码
哥哥  你用什么软件编译的哇   为毛我的6.0出不来呢
2010-11-26 23:25
淡雅蜻蜓
Rank: 1
等 级:新手上路
帖 子:23
专家分:8
注 册:2010-11-21
得分:0 
回复 12楼 玩出来的代码
我试试看   哈
2010-11-26 23:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-327004-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.174643 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved