- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C程序教程第2版》教学素材PPT讲稿(教学课件)第10章类和对象
第 10 章 类和对象 ;10.1 类和对象的定义 10.1.1 从结构体到类;10.1.2 类和对象的定义形式;[例10.1] 定义描述一个人的类 Person 源程序文件名为person.h ; void GetName( char *n ) // 函数 { strcpy(n, Name); } ? char GetSex( ) // 函数 { return Sex; } int GetAge( ) // 函数 { return Age; } }; // 注意:类定义结束处的分号不能少 ?;对象的定义: 类名 对象列表; ;10.1.3 对象成员的访问;10.1.4 成员函数的定义 例10.1,类体内定义成员函数。例10.2 ,类体外定义成员函数。;// 在类体外定义成员函数 void Person::SetData(char n[ ], char s, int a) { strcpy(Name, n); Sex=s; Age=a; } void Person::GetName( char *n ) { strcpy(n, Name); };续;例10.3 测试Person类 #include person.h //包含例10.1或例10.2中的头文件 void main( ) { Person a, *pa; char name[20]; a.SetData(Cheng, F, 20); a.GetName(name); cout Name: name endl; cout Sex: a.GetSex( ) endl; cout Age: a.GetAge( ) endl;; // Person a, *pa; pa=a; pa-SetData(Zhang, M, 18); pa-GetName(name); cout Name: name endl; cout Sex: pa-GetSex( ) endl; cout Age: pa-GetAge( ) endl; };[例10.4] 定义并测试长方形类Crect, 长方形是由左上角坐标(left, top) 和右下角坐标(right, bottom)组成。;10.1.5 对象的存储空间;10.1.6 定义类和对象的有关说明;10.1.6 定义类和对象的有关说明(续);10.1.6 定义类和对象的有关说明(续);10.1.6 定义类和对象的有关说明(续);10.1.6 定义类和对象的有关说明(续);10.1.6 定义类和对象的有关说明(续);10.2 初始化对象、撤消对象;而对“类”类型的对象的私有成员,不可以这样初始化。;对“类”类型的对象的公有成员,可以这样初始化。;10.2.1 构造函数和析构函数 1.构造函数;(1) 构造函数是成员函数,函数体可写在类体内, 也可写在类体外。 (2) 构造函数是一种特殊的函数,其函数名与类名相同, 且不给出返回值类型。 (3) 构造函数可以重载, 即可以定义多个参数个数以及参数类型不同的 构造函数。 (4) 一般将构造函数定义为公有成员函数。 (5) 在创建对象时,系统自动调用构造函数。;(6) 不可以通过对象名调用构造函数 例如:d1.Date(2009) 是非法的。 (7) 可以直接通过构造函数名调用构造函数创建对象。 例如:d1 = Date(2009); 等号右边创建了一个对象(日期值是2009.5.1),并将它赋值给 d1。 又如: Date d[4] = { Date( ), Date(2010), Date(2010, 10), Date(2010, 10, 6) }; ;2.析构函数;析构函数的特点如下:;析构函数的特点如下(续):;3.调用构造函数和析构函数的时机(对象的生存周期) ;(4)动态申请的对象 —— 使用 new 产生对象时, 系统自动调用构造函数;使用 delete 撤消对象时, 系统自动调用析构函数。 ;此程序运行结果是: Constructor: 2008.4.4 //调用构造函数,产生d4对象 进入 main( )函数! Constructor: 2008.1.1 // 调用构造函数,产生d1对象 进入 fun( )函数!
文档评论(0)