- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计基础.
C++程序设计基础第19讲 C++程序设计基础第19讲 授课教师:徐鲁辉 授课日期:2007-11-23 【上节回顾】 有参构造函数;(熟练掌握) 重载构造函数;(熟练掌握) 复制构造函数。(掌握) 第5章 类与对象 5.1 结构 5.2 类与对象 5.3 构造函数与析构函数 5.4 静态成员 5.5 友员 5.4 静态成员 关键字 static 可以用于说明一个类成员; 静态成员提供了一个同类对象的共享机制。 5.4 静态成员 如下代码段: class X { char ch ; static int s ; …... }; int X :: s = 0 ; X a , b , c , d ; 5.4 静态成员 5.4.1 静态数据成员 5.4.2 静态成员函数 5.4 静态成员 5.4.1 静态数据成员 静态数据成员要求在类中声明,在类外定义; 静态数据成员局部于类,它不是对象成员,在类外可以用“类名::”作限定词,或通过对象访问; 把一个类的数据成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个static数据成员,若不指定初始化值,系统自动初始化为0。 【课堂示例(一)】 例5-20 静态数据成员的声明和初始化。 #include iostream.h class counter { static int num; public: void setnum(int i) { num = i; } void shownum() { cout num \t; } }; int counter :: num = 0; void main() { counter a,b; a.shownum(); b.shownum(); a.setnum(10); a.shownum(); b.shownum(); } 【课堂示例(二)】 例5-21 使用公有静态数据成员。 #includeiostream.h class counter { public: counter (int a) { mem = a; } int mem; //公有数据成员 static int Smem; //公有静态数据成员 }; int counter :: Smem = 1; //初始值为1 void main() { counter c(5); int i; for( i = 0; i 5; i ++ ) { counter::Smem += i; cout counter::Smem \t; } coutendl; coutc.Smem = c.Smemendl; coutc.mem = c.memendl; } 5.4 静态成员 5.4.2 静态成员函数 静态成员函数数冠以关键字static; 静态成员函数提供不依赖于类数据结构的共同操作,它没有this指针; 在类外调用静态成员函数用 “类名 :: ”作限定词,或通过对象调用。 5.4 静态成员 5.4.2 静态成员函数 举例: class X { int DatMem; public: static void StaFun(int i, X *ptr); }; void X::StaFun(int i, X *ptr) { DatMem = i; //错误,不知DatMem引自哪个对象?? ptr-DatMem = i; //正确 } void g() { X obj; X::StaFun(1, obj); //正确 obj.StaFun(1, obj); //正确 } 【课堂示例(三)】 例5-22 某商店经销一种货物。货物购进和卖出时以箱为单位,各箱的重量不一样,因此,商店需要记录目前库存的总重量。现在用C++模拟商店货物购进和卖出的情况。 5.5 友元 一个对象的私有数据,只有通过成员函数访问,这种限制性使得不同对象协同操作开销较大,而定义公有数据又破坏了信息的隐蔽性。 为解决上述问题,C++定义了类的友元,友元可以访问类的所有成员,包括私有成员。 友元可以是一个普通函数、成员函数或者另一个类。 友元关系是非对称、非传递的,即: 若F是A的友元,A不是F的友元; 若B是A的友元,C是B的友元,但C不是A的友元。 5.5 友元 5.5.1 友元函数 5.5.2 友元类 5.5 友元 5.5.1 友元函数 在一个类A中,若将关键字friend置于一个函数原型或一个类名之前,则该函数或类就是类A的友元。 【课堂示例(四)】 class A { private: int i ; void MemberFun
您可能关注的文档
- 2010年温州市初中毕业生英语听力口语学业考试复习要点与建议.ppt
- 2010年英语高考网上阅卷考生失分类型分析.ppt
- 2011年会计专业技术资格全国统考(中级财务管理).ppt
- 2011届高三物理第一轮总复习(电功 电功率).ppt
- 2010年高考数学试卷分析及2011年高考命题趋势.ppt
- 2011年江北区小学科学期末试卷.ppt
- 2011大学申请指南.ppt
- 2011年安徽高考政治真题及答案.ppt
- 2010温州市初中英语学业考试结果分析与教学反思.ppt
- 2011年全州科技管理培训社会发展与高新技术工作.ppt
- 历史的巨响 奋进的力量纪念我国第一颗原子弹爆炸成功60周年-热点速递“内容简介+素材集锦+时评+作文链接+范文”.docx
- 历史的巨响 奋进的力量:纪念我国第一颗原子弹爆炸成功60周年-热点速递“内容简介+素材集锦+时评+作文链接+范文”.docx
- 吉林省2016年中考文综试卷(解析版).doc
- 吉林省2016年中考文综试卷(解析版).doc
- 吉林省2016年度中考政 治试题(word版,含答案).doc
- 吉林省2016年中考政治试卷及答案【word版】.doc
- 2016年吉林省中考政治试题及答案解析.doc
- 吉林2016年初中毕业生学业考试.doc
- 竞聘技校数学老师演讲.docx
- 2016年吉林省中考政治试题解析.doc
文档评论(0)