- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计基础C课件第五章类分析
(2).使用方式 静态成员属于类,而不属于某一个对象,因此使用”类名::”访问静态的数据成员. 类名::静态数据成员名 公有的静态数据成员也可以通过对象访问. 对象名.静态数据成员; 对象指针-静态数据成员; 私有静态数据成员不能被类外部函数访问,也不能用对象进行访问 静态数据成员的主要用途是定义类的各个对象所公用的数据,如统计总数\平均数 class CTest { public: static int count; void Set ( int w ) ; void Display ( ) ; }; void main( ) { CTest a , b ; a . Set (10) ; cout “Operating on a:” ; a . Display( ) ; b . Set (10) ; cout “Operating on b:” ; b . Display( ) ; cout “Operating on a:” ; a . Display( ) ; } 运行结果: Operating on a: count = 10 Operating on b: count = 20 Operating on a: count = 20 int CTest::count = 0; void CTest :: Set ( int w ) {count += w ; } void CTest :: Display ( ) {cout “ count = “ count endl ; } 例10_16 全局变量给面向对象程序带来的问题就是违背封装原则,使用静态数据成员,可以消灭全局变量。 2 静态成员函数 特点: 1) 类外代码可以通过类名和作用域操作符来调用静态成员函数,无需引用类的实例(对象),甚至类的实例(对象)可以不存在。 2) 静态成员函数不能直接引用该类的非静态数据成员或非静态成员函数。 公有静态成员函数使用方式: 1)对象名. 静态成员函数(…) 2)对象指针名-〉静态成员函数(…) 3)类名::静态成函数(…) 公有静态成员函数使用方式: 1)对象名. 静态成员函数(…) 2)对象指针名-〉静态成员函数(…) 3)类名::静态成函数(…) 2 静态成员函数 当一个函数只存取静态数据成员时,这个函数应声明为静态成员函数。 class CTest {public: static int count; void Set (int w ); static void Display (); }; int CTest::count = 0; void CTest :: Set (int w) { count += w ; } void CTest :: Display ( ) {cout “ count = “ count endl; } void main( ) { CTest a , b ; a . Set (10) ; cout “Operating on a:” ; CTest :: Display( ) ; b . Set (10) ; cout “Operating on b:” ; CTest :: Display( ) ; } 例10_17 class C{ int x; static int s; public: C(){x=0;} void f(){s++; x++; g();} static void g(){ s++; x++; f(); } }; int C::s=0; int main(){ C c1,c2; c1.f(); C::f(); c1.g(); C::g(); return 0; } c1 c2 x x C::s 1 0 4 错!x非static 错!f非static 错!f非static 例10_18 const成员 1 常数据成员 可以在类中说明const类型数据成员,这些数据成员对具体对象而言,一旦建立后,就具有了const的性质,其值将不能再被变动。这类成员必须在定义时进行初始化,因此必须提供相应的构造函数对其初始化。 class C{ Public: C(){ x=0; c=0; } private:
您可能关注的文档
最近下载
- 福建省漳州第一中学(西湖校区)2024-2025学年高一下学期第一次阶段考试生物学试题(含答案).pdf VIP
- 心血管-肾脏-代谢综合征患者的综合管理中国专家共识(2025)解读PPT课件.pptx VIP
- YD∕T 5066-2017 -光缆线路自动监测系统工程设计规范.pdf VIP
- (高清版)B-T 17671-2021 水泥胶砂强度检验方法(ISO法).pdf VIP
- 骨科手术切口感染的预防与控制.pptx
- 人教版初一上册《化学》模拟考试卷及答案【可打印】.docx VIP
- 《宴席设计实务》(肖炜)教案 第6课 为西式宴席设计酒水.docx VIP
- 塔吊驾驶员安全培训试题及答案.doc VIP
- ASME BPVC-VII-2017 锅炉及压力容器规范 第七卷:动力锅炉维护推荐指南 国外国际标准.pdf VIP
- GB_T 17671-2021水泥胶砂强度检验方法(ISO法).docx VIP
文档评论(0)