.实用文档.
面向对象程序是由一个个封装的对象组成,而对象是由紧密结合在一起的算法和数据结构组
成。对象之间是相互请求和相互协作的关系。
4.2.15 简叙 Windows 下应用程序的运行方式。
答:Windows 系统支持多个应用程序同时执行,在界面形式上,它支持多个窗口同时活动。
它的运行机制是“消息传递和事件驱动〔message based and event driven〕〞。
Windows 系统使用事件驱动的编程模式。所谓事件的含义非常广泛。输入设备的动作,
如敲打键盘、按鼠标等会产生一系列的事件〔注意不是一个事件〕。操作系统所作的一举一
动也被当作某种类型的事件,应用程序也会产生各种事件。事件用来标识发生的某件事情。
Windows 系统对于应用程序环境中发生的每一个事件都会以对应的某种消息的形式标
识,并放入相应的 Windows 建立的消息队列中,然后由对应的应用程序或窗口函数去处理。
窗口函数处理是分层的,前面处理不了的送到后面,最后处理不了剩下的全由缺省的窗口函
数处理。
4.2.16 类的成员函数在什么情况下应该定义为私有的?这样做的目的是什么?
答:除接口函数和创立本类对象的构造函数和撤消该对象的析构函数外。其余成员函数应该
定义为私有的,这是开发类时成心对外隐蔽起来的操作,而这些往往是最复杂最关键的局部。
类中成心的隐藏也为以后的升级扩展留下了余地,只要接口不变,内部再变,也不必修改原
来的程序,就象 MFC〔微软根底类〕升级后,由MFC 底层类所编的程序完全不必修改,自
动升级。
二.编程与综合练习题
4.3 构造一个日期时间类〔Timedate〕,数据成员包括年、月、日和时、分、秒,函数成员
包括设置日期时间和输出时间,其中年、月请用枚举类型,并完成测试。〔包括用成员
函数和用普通函数〕
解:此题要求仅是定义类的练习,并非实用的提供日期时间的程序。实用的日期时间程序
见附录二的日期时间函数。
#include <iostream>
#include <iomanip>
using namespace std;
enum YR{Y2000,Y2001,Y2002,Y2003,Y2004,Y2005};//
enum MT{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec};
class Timedate{
private:
YR year;
MT month;
int date;
int hh;
int mm;
int ss;
public:
Timedate(){year=Y2000;month=Jan;date=1;hh=0;mm=0;ss=0;}
Timedate(YR a,MT b,int c){
.