欢迎来到天天文库
浏览记录
ID:55341226
大小:623.00 KB
页数:226页
时间:2020-05-14
《C面向对象程序设计 第4章 类和对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章类和对象4.1一个典型例子4.2类介绍4.3示例:Stack类4.4构造函数与析构函数:构造函数、复制构造函数、构造函数的初始化列表、析构函数4.5类的静态成员4.6this指针第4章类和对象4.7指向类的成员的指针4.8成员对象和封闭类4.9常成员和常对象4.10引用成员4.11友元4.12局部类和嵌套类4.13C语言实现类的封装4.1一个典型例子下面我们通过一个简单的例子来体会程序设计中引入类的好处。假设有年(year)、月(month)、日(day)三个int型数据,用户先设置年、月、日,之后再输
2、出设置年、月、日。例4.1在main函数中直接进行输入和输出:intmain(){intyear;intmonth;intday;cin>>year>>month>>day;cout<>y>>m>>d;}print(inty,intm,intd){cout<3、;set(year,month,day);print(year,month,day);return0;}若需求发生了变化,不仅要对年、月、日进行设置和输出,还要对时、分、秒进行设置和输出。例4.3在main函数中直接进行设置和输出:intmain(){intyear;intmonth;intday;inthour;intminute;intsecond;cin>>year>>month>>day>>hour>>minute>>second;cout<4、e<>y>>m>>d>>h>>m>>s;}voidprint(inty,intm,intd,inth,intm,ints){cout<5、ay,hour,minute,second);print(year,month,day,hour,minute,second);return0;}从上面的程序可以看出,当需求发生变化的时候,对程序的修改还是比较大的,这也就是说程序的可扩展性不好。一个扩展性好的程序,应该以尽可能少的修改来适应需求的变化。下面我们将年、月、日等数据封装在一起,通过结构体来实现前面的例子。例4.5设置年、月、日,输出年、月、日,在main函数中直接进行设置和输出:structTime{intyear;intmonth;intday6、;};intmain(){Timet;cin>>t.year>>t.month>>t.day;cout<>t.year>>t.month>>t.day;}voidprint(Time&t){cout<7、;set(t);print(t);return0;}例4.7设置年、月、日、时、分、秒,输出年、月、日、时、分、秒。structTime{intyear;intmonth;intday;inthour;intminute;intsecond;};voidset(Time&t){cin>>t.year>>t.month>>t.day>>t.hour>>t.minute>>t.second;}print(Time&t){cout<8、
3、;set(year,month,day);print(year,month,day);return0;}若需求发生了变化,不仅要对年、月、日进行设置和输出,还要对时、分、秒进行设置和输出。例4.3在main函数中直接进行设置和输出:intmain(){intyear;intmonth;intday;inthour;intminute;intsecond;cin>>year>>month>>day>>hour>>minute>>second;cout<4、e<>y>>m>>d>>h>>m>>s;}voidprint(inty,intm,intd,inth,intm,ints){cout<5、ay,hour,minute,second);print(year,month,day,hour,minute,second);return0;}从上面的程序可以看出,当需求发生变化的时候,对程序的修改还是比较大的,这也就是说程序的可扩展性不好。一个扩展性好的程序,应该以尽可能少的修改来适应需求的变化。下面我们将年、月、日等数据封装在一起,通过结构体来实现前面的例子。例4.5设置年、月、日,输出年、月、日,在main函数中直接进行设置和输出:structTime{intyear;intmonth;intday6、;};intmain(){Timet;cin>>t.year>>t.month>>t.day;cout<>t.year>>t.month>>t.day;}voidprint(Time&t){cout<7、;set(t);print(t);return0;}例4.7设置年、月、日、时、分、秒,输出年、月、日、时、分、秒。structTime{intyear;intmonth;intday;inthour;intminute;intsecond;};voidset(Time&t){cin>>t.year>>t.month>>t.day>>t.hour>>t.minute>>t.second;}print(Time&t){cout<8、
4、e<>y>>m>>d>>h>>m>>s;}voidprint(inty,intm,intd,inth,intm,ints){cout<5、ay,hour,minute,second);print(year,month,day,hour,minute,second);return0;}从上面的程序可以看出,当需求发生变化的时候,对程序的修改还是比较大的,这也就是说程序的可扩展性不好。一个扩展性好的程序,应该以尽可能少的修改来适应需求的变化。下面我们将年、月、日等数据封装在一起,通过结构体来实现前面的例子。例4.5设置年、月、日,输出年、月、日,在main函数中直接进行设置和输出:structTime{intyear;intmonth;intday6、;};intmain(){Timet;cin>>t.year>>t.month>>t.day;cout<>t.year>>t.month>>t.day;}voidprint(Time&t){cout<7、;set(t);print(t);return0;}例4.7设置年、月、日、时、分、秒,输出年、月、日、时、分、秒。structTime{intyear;intmonth;intday;inthour;intminute;intsecond;};voidset(Time&t){cin>>t.year>>t.month>>t.day>>t.hour>>t.minute>>t.second;}print(Time&t){cout<8、
5、ay,hour,minute,second);print(year,month,day,hour,minute,second);return0;}从上面的程序可以看出,当需求发生变化的时候,对程序的修改还是比较大的,这也就是说程序的可扩展性不好。一个扩展性好的程序,应该以尽可能少的修改来适应需求的变化。下面我们将年、月、日等数据封装在一起,通过结构体来实现前面的例子。例4.5设置年、月、日,输出年、月、日,在main函数中直接进行设置和输出:structTime{intyear;intmonth;intday
6、;};intmain(){Timet;cin>>t.year>>t.month>>t.day;cout<>t.year>>t.month>>t.day;}voidprint(Time&t){cout<7、;set(t);print(t);return0;}例4.7设置年、月、日、时、分、秒,输出年、月、日、时、分、秒。structTime{intyear;intmonth;intday;inthour;intminute;intsecond;};voidset(Time&t){cin>>t.year>>t.month>>t.day>>t.hour>>t.minute>>t.second;}print(Time&t){cout<8、
7、;set(t);print(t);return0;}例4.7设置年、月、日、时、分、秒,输出年、月、日、时、分、秒。structTime{intyear;intmonth;intday;inthour;intminute;intsecond;};voidset(Time&t){cin>>t.year>>t.month>>t.day>>t.hour>>t.minute>>t.second;}print(Time&t){cout<8、
8、
此文档下载收益归作者所有