文档介绍:第五章 C++ 程序的结构典型案例【案例 5-1 】局部作用域的效果#include <iostream> using namespace std; void fun() //变量 num 将在每次进入函数 fun() 时进行初始化{ int num = 10; cout << num << "\n"; num++; //这个语句没有持续效果} int main() { for(int i=0; i< 3; i++) fun(); return 0; }【案例 5-2 】屏蔽效应——作用域效果导致的名称隐藏#include <iostream> using namespace std; int main() { int i= 10, j= 30; if(j > 0) { int i; //内部的 i将隐藏或屏蔽外层的 i i=j/ 2; cout << "inner variable i:" << i << '\n'; } cout << "outer variable i:" << i << '\n'; return 0; }【案例 5-3 】筛选偶数——文件作用域变量#include <iostream> using namespace std; int count; //这是一个全局变量 void func1() { void func2(); cout << "count: " << count<< '\n'; //可以访问全局变量 count func2(); } void func2() { int count; //这是一个局部变量 for(count=0; count<2; count++) cout << '*'; } int main() { void func1(); void func2(); int i; //这是一个局部变量 for(i=0; i<10; i++) { count = i++; func1(); } return 0; }【案例 5-4 】求数据序列的平均值—— static 局部变量的持续效果#include <iostream> using namespace std; int Average(int i){ static int sum = 0, count = 0; //声明静态局部变量,具有全局寿命,局部可见 sum = sum + i; count++; return sum/count; } int main() { int num; //局部变量,具有动态生存期 do { cout << "Enter numbers (-1 to quit): "; cin >> num; if(num != -1) cout << "Running average is:" << Average(num); cout <<endl; } while(num > -1); return 0;}【案例 5-5 】求数据序列的平均值—— static 全局变量的应用#include <iostream> using namespace std; int Average(int i); void reset(); int main() { int num; //局部变量,具有动态生存期 do { cout << "Enter numbers (-1 to quit, -2 to reset): "; cin >> num; if(num == -2) { reset(); continue; } if(num != -1) cout << "Running average is:" << Average(num); cout << endl; } while(num != -1); return 0; } static int sum = 0, count = 0; //静态全局变量,具有静态生存期,全局可见 int Average(int i){ sum = sum + i; count++; return sum/count; } void reset() { sum = 0; count = 0; }【案例 5-6 】时钟类——具有静态生存期的全局变量和全局对象#include<iostream> using namespace std; int h=0,m=0,s=0; //声明全局变量,具有静态生存期 class Clock { public: Clock(); void SetTime(int NewH, int NewM, int NewS); //三个形参均具有函数原型作用域 void ShowTime(); ~Clock(){} private: int Hour,Min