Chapter3-关于类和对象进一步讨论3.pptVIP

  • 1
  • 0
  • 约8.68千字
  • 约 48页
  • 2019-01-08 发布于湖北
  • 举报
* 3.6 静态成员 问题引入: 例1:定义一个工人类,该类中包含工人的每周工作时间属性及完成工作时间的设置和统计操作,统计所有工人的每周工作时间。 分析:定义工人类 class Worker //定义工人类 { char *name; //工人姓名 int time; //工作时间 public: void workTime(int n);//设置和统计 }; * 3.6 静态成员 问题引入: 例1:统计工人工作时间。 分析:统计多个工人的每周工作时间,必须要实现工人的每周工作时间在多个工人对象中被共享。 同一个类的不同对象都拥有自己的数据成员空间,如何实现同一个类的多个对象的之间的数据共享? 解决方法! * 3.6 静态成员 问题引入: 例1:统计工人工作时间。 解决方法 方法一:定义全局变量或对象 缺点:不安全,任何功能模块都可以更改; 方法二:定义静态的数据成员 优点:可实现共享,并保证安全性。 * 3.6 静态成员 问题引入: 例1:统计工人工作时间。 解决方法 方法一:定义全局变量或对象 int total=0; //用于统计总工作时间 class Worker //定义工人类 { char *name; int time; public: void workTime(int n); }; 全局变量 * 3.6 静态成员 int total=0; //用于统计总工作时间 class Worker //定义工人类 { char *name; int time; public: void workTime(int n); }; void Worker:: workTime(int n) { time=n; total+=n; } int main() { Worker worker1, worker2, worker3; worker1. workTime (48); worker2. workTime (36); worker3. workTime (38); coutTotal=totalendl; return 0; } 运行结果: Total= 122 * 3.6 静态成员 问题引入: 例1:统计工人工作时间。 解决方法 方法一:定义全局变量或对象 缺点:不安全,任何功能模块都可以更改; int total=0; //用于统计总工作时间 class Worker { }; void f( ){ total+=50; } * 3.6 静态成员 问题引入: 例1:统计工人工作时间。 解决方法 方法一:定义全局变量或对象 缺点:不安全,任何功能模块都可以更改; 方法二:定义静态的数据成员 优点:可实现共享,并保证安全性。 静态成员 静态数据成员和静态成员函数 * 3.6 静态成员 (一)静态数据成员的定义格式 在定义类的成员时前面加static static 类型名 成员名; 例如:统计工人工作时间。 class Worker //定义工人类 { …… static int total; }; 定义静态数据成员 * 3.6 静态成员 class Worker //定义工人类 { char *name; int time; public: static int total; void workTime(int n); }; void Worker:: workTime(int n) { time=n; total+=n; } int Worker::total=0; int main() { Worker worker1, worker2, worker3; worker1. workTime (48); worker2. workTime (36); worker3. workTime (38); coutTotal=Worker::total

文档评论(0)

1亿VIP精品文档

相关文档