《c语言程序设计》第十一章 面向对象的程序设计

《c语言程序设计》第十一章 面向对象的程序设计

ID:33885196

大小:389.85 KB

页数:23页

时间:2019-03-01

《c语言程序设计》第十一章 面向对象的程序设计_第1页
《c语言程序设计》第十一章 面向对象的程序设计_第2页
《c语言程序设计》第十一章 面向对象的程序设计_第3页
《c语言程序设计》第十一章 面向对象的程序设计_第4页
《c语言程序设计》第十一章 面向对象的程序设计_第5页
资源描述:

《《c语言程序设计》第十一章 面向对象的程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一章面向对象的程序设计第十一章面向对象的程序设计11.1基本要求ò掌握面向对象的程序设计思想ò掌握C++输入输出、变量引用、作用域运行符、内联函数、函数重载。ò深刻理解类与对象概念,掌握类的声明与对象声明的方法,了解构造函数与析构函数。ò理解继承与派生概念,掌握建立派生类的方法。ò掌握基本的C++语句cout、cin等。11.2内容小结本章在介绍面向对象编程思想的基础上,讲授了C++对C所进行的扩展,包括:(1)允许使用以//开始的注释。(2)提供标准输入输出流cout和cin,它们不必指定输入输出格式字符,灵活方便。(3)“引用”(referen

2、ce)是一个别名,声明引用的过程也就是为某个变量建立别名的过程,C++中引入“引用”的主要目的是为了在函数间传递数据。(4)作用域又称作用范围,一个变量只能在其声明的有效作用域内才能使用。如果要输出非局部变量的值,C++提供了作用域运算符::,它能指定所需要的作用域。(5)使用内联函数时编译器在编译时并不生成真正的函数,而是将程序中出现的每一个内联函数调用表达式直接用该内联函数的函数体替换。使用内联函数可提高效率,但同时会增加程序的代码量。(6)可以利用函数重载实现用同一函数名代表功能类似的函数,即:建立多个同名的函数,但函数的形参表互不相同(形参个数

3、或类型不同),函数类型也互不相同。(7)可以使用带缺省值的参数的函数,使函数调用更加灵活。(8)C++语言引入了类的概念,它能将不同的属性和不同的行为捆绑在一个集合中,用于描述某件事物的共同特性。而C++还引入了对象的概念,用于指定特定的事物实体。(9)类本质上是用户自定义数据类型,由数据变量和函数共同构成,其中:变量称为成员变量或数据成员,函数称为成员函数或方法。(10)构造函数的函数名与类名相同,参数根据需要可有可无,但一定不能指定返回值类型(包括void),构造函数声明时虽然属于public,但只能在创建类的对象时140第十一章面向对象的程序设计

4、由系统自动调用,对对象进行初始化,程序的其他部分不能调用。(11)析构函数(destructor)作用与构造函数正相反,在对象终止时由系统自动调用,做“善后清理”工作,以释放分配给对象的内存。析构函数的函数名应为类名前加“~”。析构函数没有参数,也不能为之指定返回值类型。一个类内只能声明一个析构函数,和构造函数相同,它是公有的成员函数,如果类内没有析构函数的声明,C++编译器会自动生成一个带空函数体的析构函数。(12)派生出的新类被称为派生类或子类,而被继承的类称为基类或父类,一个基类可派生出多个派生类,一个派生类也可以由多个基类派生而来,派生类型有3

5、种:public、private、protected。11.3典型例题ò例题11-1任意给定一合法日期(例如:2003年12月13日),可以求出这一日期是星期几,它的前一天星期几,后一天星期几。//首先定义类#includestructDate//定义结构Date,包含年、月、日{intmonth;intday;intyear;};classTdateType{public:TdateType(Dateb);//构造函数voidModify(intm=10,intd=1,inty=2002);//带缺省值参数的函数voidNex

6、t();//指定日期的后一天voidPrevious();//指定日期的前一天intWeekDay();//计算星期几voidPrint();//显示日期protected:Datea;//Date结构的成员变量a,保护类型intIsLeapYear();//判断是否闰年,是保护类型的成员函数intMonthEnd(intm);//判断某月的天数,是保护类型的成员函数};141第十一章面向对象的程序设计//以下是类的成员函数的实现TdateType::TdateType(Dateb)//构造函数{a.month=b.month;a.day=b.day;

7、a.year=b.year;}voidTdateType::Modify(intm,intd,inty)//注意本函数没有非法年月日过滤功能{a.month=m;a.day=d;a.year=y;}voidTdateType::Next(){a.day++;if(a.day>MonthEnd(a.month)){a.day=1;a.month++;if(a.month>12){a.month=1;a.year++;}}}voidTdateType::Previous(){a.day--;if(a.day<1){a.month--;if(a.month<

8、1){a.month=12;a.year--;142第十一章面向对象的程序设计}a.day=M

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。