标题:[求助]初学者的问题!
只看楼主
warriorguo
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-5-28
 问题点数:0 回复次数:1 
[求助]初学者的问题!

不知这程序错在那些地方~~ 望高手指教:) #include<iostream.h> #include<stdio.h> #include<conio.h>

#define MaxLen 100 #define NULL 0

template <class T> class Chain{ friend stack<T>; private: T data; Chain<T> *next; };

template <class T> class stack{ public: stack(){stack=NULL;Maxlen=0;} ~stack(); stack<T>& push(const T& data); bool pop(T& data); int len()const; private: int Maxlen; Chain<T> *stack; };

template <class T> stack<T>::~stack(){ stack<T> *q=stack; while(stack){ q=stack->next; delete stack; stack=q; } }

template <class T> stack<T>& stack<T>::push(const T& data){ if(Maxlen>=MaxLen){ cout<<"The stack is full!"<<endl; }else{ chain<T> *q=new chain<T>; q->data=data;q->next=NULL; stack->next=q; stack=q;

Maxlen++; } return *this; }

template <class T> bool stack<T>::pop(T& data){ if(Maxlen==0){ data=-1; return false; } stack<T> *y=stack; stack=y->next; data=y->data; delete y; Maxlen--;

return true; }

template <class T> int stack<T>::len(){ return Maxlen; }

void main(){ int x,i; stack<int> sta; cout<<"Input five Number:"<<endl; for(i=0;i<5;i++){ cin>>&x>>endl; sta.push(x); }

while(sta.pop(x)){ cout<<x<<endl; } getch(); }

搜索更多相关主题的帖子: stack class Chain data 
2005-06-06 17:26
shan183
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2005-5-30
得分:0 
你程序中出现了名字污染,也不知道你那些相同的名字都谁是谁了,在名字上修改一下,然后你那个友元模板在看看是不是有错误。还有,编C++程序还是尽量用C++的头文件,你那些C头文件还是省了吧! 跟着标准走!
2005-06-09 10:45



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




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

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