论静态成员在C++中的应用_第1页
论静态成员在C++中的应用_第2页
论静态成员在C++中的应用_第3页
论静态成员在C++中的应用_第4页
论静态成员在C++中的应用_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、论静态成员在中的应用    论文关键词C+ 静态成员 共享 论文摘要C+类中的静态成员是类中各个对象所共享的成员,从数据共享的角度出发,介绍静态成员在类中实现数据共享的方法、作用。 C+中类的成员分为静态数据成员和静态成员函数。它的作用类似于全局变量,可以实现C+多个对象之间的数据共享,但全局变量在程序中的可操作性难于控制,经常会带来不安全性,所以,考虑到程序的安全性,作者在本文讲述了静态成员在C+程序中的使用方法及作用。 一、静态数据成员的应用 C+中的静态数据成员是同一个类中所有对象所共享的成员,静态数据成员中存放的是所有对象的值,不是某一个对象的值

2、,所以同一类中的每个对象的值都是一样,但它的值也是可以改变的。通过下面的实例可以对以上的内容加以证实、说明静态数据成员在C+类中的使用方法及作用。 (一)静态数据成员的定义、初始化 静态数据成员定义是以static关键字开始,后跟静态数据成员类型符、变量名;例:staticints; (二)静态数据成员的初始化 静态数据成员的初始化是在类体外进行,初始化时不用加访问权限符,但是静态成数据成员是类的成员,所以在初始化时应指明该成员的类名;例如在类名为 Tstu的类中定义了一名为s整型静态数据成员,则初始化格式为:int Tstu:s =0; (三)静态数据成员的引用实例 #include cla

3、ss Tstu/类的说明; public:/定义二个成员函数; Tstu(int a,int b); /定义构造函数,用来对数据成员赋初值; bb( ); private: int x,y;/定义二个数据成员; static int s;/定义一个静态的数据成员,类Tstu定义结束; int Tstu:s=0; /静态数据成员的赋值; Tstu:Tstu(int a,int b)/构造函数的实现部分; x=a;y=b; void Tstu:bb( )/成员函数的实现部分; s=s+x+y;cout<<”s=”<void main( )/主函数; Tstu t1(10,20),

4、t2(5,3); t1.bb( );t2.bb( ); 对于以上的程序,类Tstu中的t1对象调用成员函数bb( )之后,静态数据成员s中的值是30,那么对象t2在调用前,对于对象t2,s中的值已是30,因为s中的值是每个对象所共享的,t2对象调用后,s中最后的值是38。 我们再来看以下代码: #include class Ta public: Ta()n+; /定义构造函数,当定义对象时n的值自动加1; Ta()n-; /定义析构函数,释放对象时n的值自动减1; int sum()return n; /成员函数sum( )用来返回静态数据成员n的值; private: static int

5、n; int Ta:n = 0;当创建该类对象实体时,由于n为所有对象所共享的数据,从而可以统计当前创建的所有对象的数量。这一技巧可以运用到很多方面,如对象实体的互斥关系,引用计数等相关方面。C+类中的静态成员有一个非常好的功能,那就是无论类定义了多少个对象,这些对象始终都共同使用这一个静态成员,在使用时需要注意的是类静态数据成员除了在类中形式说明之外,必须在使用前在对象说明之外作定义性说明,主要是为了给类中静态数据成员分配内存。通过这个实例可更加清晰的解述静态数据成员在类中实现数据的方法、作用。 二、静态成员函数的应用 静态成员函数与静态成员的特性相似,属于类的成员,不是对象的成员。在静态成

6、员函数的实现中,可以直接引中类中说明的静态成员。下面通过具体的实例说明静态成员函数的应用。 我们可以通过以下的代码来看看静态成员函数的应用: #include class T public: T(int a)x=a;y=y+a; Static void f1(T t);/定义静态成员函数; Private: int x; static int y; void T:f1(T t) cout<<”x=”< cout<<”y=”<int T:y=0; void main( ) T m1(2),m2(4); T:f1(m1);T:f1(m2); 以上程序的执行结果分

7、别是x=2,y=6和x=4,y=6; 在T类中,定义了静态成员函数f1( ),在该函数的实现中,可以直接引有类的静态数据成员,但引用非静态成员是通过对象进行的,对于类静态函数成员而言,则该函数只能涉及其它类静态成员时,否则该函数不具有任何确切含义,因为不同对象非静态成员取值可能不同。 三、总结 本文是笔者根据自己多年教学体会及经验,用简单的例子和简练的叙述讲解C+中静态成员在实现数据共享中的应用,作用。文中如有不足之处,望各位读者批评指正。 参考文献: 1张素琴.C+程序设计语言M.北京:清华大学出版社.1995. 2吕军,杨琦等.Visual C+与面向对象程序设计教程M.北京:高等教育出版

8、社.2006.没有找到你想要的论文?你还想要更优秀的论文?                本中心为硕士团队,提供正规省级、国家级、核心期刊论文代写代发服务。(服务流程查看)    诚信与高效的结合 职称与课题的帮手 毕业与评估的保障        投稿:xnxszx 客服电话胥老师)在线QQ:      

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论