C++中静态成员变量的研究.pdfVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++中静态成员变量的研究.pdf

2005年 12月 陕 西 理 工 学 院 学 报 DeC.20o5 第21卷第4期 JournalofShaanxiUniversityofTechnology V01.21 No.4 [文章编号]1673—2944(2005)04—0022—03 C++语言中静态数据成员的研究 张 永 , 方安仁 , 刘治生 (1.南昌航空工业学院计算机系,江西 南昌 330063; 2.江西科技职业学院, 江西 南昌330200;3.江西城市职业学院,江西 南昌330004) [摘 要] 深入分析了c++语言中类静态数据成员的声明和访问方法,指出了程序设计 中 利用全局变量来实现数据共享的弊端,同时给出了利用类静态数据成员取代全局变量的方法 以及在程序设计中使用类静态数据成员时应注意的问题,详细阐述了类静态数据成员在程序 设计中的作用,并举了相应的实例来说明如何正确使用静态数据成员。 [关 键 词] 类;C++语言; 静态数据成员; 全局变量 [中图分类号] TP311.1l [文献标识码] A 类是类型而不是数据对象,每个类对象都是该类数据成员的拷贝。然而,在某些情况下需要让类的 所有对象在类的范围内共享某个数据,例如一个类的多个对象需要根据同一个数据的状态来决定下一 个动作时,这时就会想到利用全局变量,但全局变量在类的外面,既不安全 ,又影响了重用性。一旦程序 庞大,维护量就急剧上升,使用类静态数据成员,就可以解决这个问题 ,同时也节省了空间和构造对象时 的时间,又不破坏面向对象的封装性,也给程序设计带来很大的好处。 1 类静态数据成员的定义及声明方法 在一个类中,如果它的数据成员使用关键字static进行修饰,这样的成员称为静态数据成员。静态 数据成员提供的是类的所有对象共享的信息,无论建立多少个该类的对象,都只有一个静态数据的拷 贝。尽管静态数据成员看起来有些象全局变量,但它是具有类作用域的。静态数据成员可以是公有的、 私有的或受保护的。静态数据成员必须在文件作用域内初始化,并且只在文件范围中初始化一次。在 数据成员声明的最前面加上系统关键字static就成了静态数据成员,例如: classzy {public:staticintdata;}; 2 类静态数据成员的访问 类的静态数据成员是在编译阶段 (而不是运行阶段)进行空间的分配和初始化的,所以,类的静态 数据成员是属于类的,而不是属于某个具体对象的,它们被该类的所有对象共享,被存储在一个公用的 内存中,即使还没有建立对象,静态数据成员就已经存在,从而类的public静态数据成员既可以利用二 元作用域运算符通过类名访问,也可以通过类的任何对象直接访问,实际上,通过对象名引用静态数据 成员时,c++系统只关心静态数据成员的类类型;类的private和protected静态数据成员应通过类的 public成员函数或通过类的友元访问。 2.1 通过类名访问静态数据成员 即使类没有一个对象,其静态数据成员依然存在,所以就可以访问,一般来说,通过类名访问静态数 据成员,比使用对象名访问静态数据成员要好,因为静态数据成员不是对象的成员,而是属于类的。例 收稿 日期:2005—08—29 作者简介:张永(1977一),男,辽宁铁岭人,硕士生,南昌航空工业学院教师,主要研究方向为生物信息学。 第4期 张永,方安仁 ,刘治生 C++语言中静态数据成员的研究 如 : #include”iostream.h” intzy::data:10: classzy voidmain() {public:staticintdata;I; {goutzy::dataendl;} 2.2 通过类对象访问静态数据成员 由于在类中仅对静态数据成员进行了引用性说明,所以必须在文件作用域的某个地方进行定义性 说明,并且这种说明只能有一次。例如: intzy::data; 在定义性说明中也可以同时初始化,例如:

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档