为什么出现这个错误?
以下代码主要为实现在栈中添加和删除结构,但显示有很多错误。比如这行有以下错误:
Item a[MAX];
[Error] field 'a' has incomplete type 'Item [10]'
代码如下:
程序代码:
#include<iostream> using namespace std; typedef struct Item; class Stack{ private: double ui=0; int top; struct customer{ char fullname[35]; double payment; }; enum{MAX=10}; Item a[MAX]; public: Stack(){ top=0; }; bool isemptey()const; bool isfull()const; bool push(const Item &st)const; bool pop(const Item &st)const; }; bool Stack::isempty()const{ return top==0; } bool Stack::isfull()const{ return top==MAX; } bool Stack::push(const Item &st)const{ if(top<MAX){ a[top++]=st; return true; } else{ return false; } } bool Stack::pop(const Item &st)const{ if(top>0){ st=a[--top]; ui+=st.payment; return true; } else return false; } int Stack::show(){ cout<<"ui的值为:"<<ui<<endl; } int main(){ Stack asd; char ch; Item b={"qwer",44.3}; while(cin>>ch&&ch!='Q'){ while(cin.get()!="\n"){ continue; } switch(ch){ case 'A': case 'a': cin>>b.payment; if(asd.isfull()) cout<<"Stack is full."; else asd.push(b); break; case 'p': case 'P': cin>>b.payment; if(asd.isempty()) cout<<"Stack is empty."; else{ asd.pop(b); cout<<"payment结构成员的值为:"<<b.payment<<endl; asd.show(); } break; } } return 0; }