程序中不要出现标识符完全相同的局部变量和全局变量

程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的 作用域不同而不会发生语法错误,但会使人误解。

 

 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 }

 

posted @ 2018-08-03 12:11  borter  阅读(217)  评论(0编辑  收藏  举报