首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

大家帮小弟我看下这段程序错在哪

2012-04-25 
大家帮我看下这段程序错在哪C/C++ code#include iostream#define MAX 1024using namespace stdtemplate

大家帮我看下这段程序错在哪

C/C++ code
#include <iostream>#define MAX 1024using namespace std;template<typename T>  class sequeue;template <typename T>void sequeue<T>::operator = (stack<T> &s);template <typename T> class stack{public:    stack(int i=-1):top(i){}    virtual void push(T t);    virtual T pop();    virtual void peek()    {        if(empty()) cout<<"空栈"<<endl;        else cout<< data[top] <<endl;    }    virtual void setnull(){top=-1;}    virtual bool empty()    {        if(top>=0) return false;        else return true;    }    void operator =(const stack<T> &a)    {        top=a.top;        for(int i=0;i<=a.top;i++)            data[i]=a.data[i];    }    void operator =(sequeue<T> &s);    protected:    T data[MAX];    int top;    friend void sequeue<T>::operator = (stack<T> &s);};template <typename T> class sequeue:public stack<T>{public:    sequeue():stack(MAX-1),rear(MAX-1){}    virtual void push(T t);    virtual T pop();    virtual bool empty()    {        if(rear==top) return true;        else return false;    }    virtual void setnull(){rear=MAX-1;top=MAX-1;}    virtual void peek()    {        if(empty()) cout<<"空队列"<<endl;        else cout<<data[top+1]<<endl;    }    void operator = (stack<T> &s)    {        rear=s.top;        for(int i=0;i<=s.top;i++)            data[i]=s.data[i];        s.setnull();    }protected:    int rear;    friend void stack <T>::operator =(sequeue<T> &s);};template <typename T> void sequeue<T>::push(T t){    if(top==(rear+1)%MAX)        cout<<"满队列"<<endl;    else    {        rear=(rear+1)%MAX;        data[rear]=t;    }}template <typename T>T sequeue<T>::pop(){    if(empty())    {        T x;        cout<<"空队列"<<endl;        return x;    }    else    {        top=(top+1)%MAX;        return data[top];    }}template <typename T>void stack<T> ::push(T t){    if(top==MAX-1)        cout<<"溢出"<<endl;    else        data[++top]=t;}template <typename T>T stack<T> :: pop(){    if(stack::empty())    {        T x;        cout<<"空栈"<<endl;        return x;    }    else        return data[top--];}template <typename T>void stack<T>::operator =(sequeue<T> &s) //出队列 入栈 更简洁{    int a=s.top,b=s.rear,i;    if(a<b)    {        for(i=0;i<s.rear-s.top;i++)            data[i]=s.data[++a];        top=--i;    }    else if(a>b)    {        for(i=0;i<MAX-(s.top-s.rear);i++)        {            if(a==MAX-1)                a=-1;            data[i]=s.data[++a];        }        top=--i;    }    else        top=-1;    s.setnull();}


[解决办法]
什么错误啊!
[解决办法]
如果编译链接有错,帖出错误行和代码
如果运行不对,单步跟踪
[解决办法]
...
里面有函数未定义
[解决办法]
探讨
在哪呢!

[解决办法]
好歹写个main创建一个 测试一下
如果编译链接有错,帖出错误行和代码
如果运行不对,单步跟踪

热点排行