程序中不要出现标识符完全相同的局部变量和全局变量
程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的 作用域不同而不会发生语法错误,但会使人误解。
1 #include <iostream> 2 3 const int MAX=5; 4 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 5 using namespace std; 6 //假定栈中最多保存5个数据 7 8 //定义名为stack的具有栈功能的类 9 class stack { 10 //数据成员 11 double num[MAX]; //存放栈数据的数组 12 int top; //指示栈顶位置的变量 13 public: 14 //成员函数 15 stack(char *name) //构造函数 16 { 17 top=0; 18 cout<<"Stack "<<name<<" initialized."<<endl; 19 } 20 ~stack(void) //析构函数 21 { 22 cout << "Stack destroyed." << endl; //显示信息 23 } 24 25 void push(double x) //入栈函数 26 { 27 if (top==MAX){ 28 cout<<"Stack is full !"<<endl; 29 return; 30 }; 31 num[top]=x; 32 top++; 33 } 34 double pop(void) //出栈函数 35 { 36 top--; 37 if (top<0){ 38 cout<<"Stack is underflow !"<<endl; 39 return 0; 40 }; 41 return num[top]; 42 } 43 }; 44 45 46 int main(int argc, char** argv) { 47 double x; 48 //声明(创建)栈对象并初始化 49 stack a("a"),b("b"); 50 51 //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈 52 for (x=1; x<=MAX; x++) 53 a.push(2.0*x); 54 55 //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示 56 cout<<"a: "; 57 for (int i=1; i<=MAX; i++) 58 cout<<a.pop()<<" "; 59 cout<<endl; 60 61 //从键盘上为b栈输入数据,并显示 62 for (int i=1;i<=MAX;i++) { 63 64 cout<<i<<" b:"; 65 cin>>x; 66 b.push(x); 67 } 68 cout<<"b: "; 69 for(int i=1;i<=MAX;i++) 70 cout<<b.pop()<<" "; 71 cout<<endl; 72 return 0; 73 }