静态属性和静态方法

让编程改变世界

Change the world by program


静态属性和静态方法

通过前面的学习,我们已经在面向对象编程技术的世界里大大的迈出了第一步。 我们掌握了继承,学会如何把需要解决的问题转换成一个类的层次结构,但我们在写代码的过程中还是遇到很多问题无法解决,所以我们需要进一步的学习。   接下来,我们会介绍一系列 C++ 和面对对象编程技术中的一些比较高级的概念:静态对象和静态方法,虚方法,抽象方法和多态等。 面对对象编程技术的一个重要特征是用一个对象把数据和对数据处理的方法封装在一起。   大家还记得,在前边的例子里我们一直是在使用对象(也可以说某个类的实例)来调用方法,每个方法只处理调用它的那个对象所包含的数据,所有的数据都属于同一个对象。

这就引发了一个问题:如果我们所需要的功能或数据不属于某个特性的对象,而是属于整个类的,该怎么办?

我们不妨假设现在需要统计一下有多少只活的动物。那么我们需要有一个计数器变量:每诞生一只宠物,就给宠物计数器加上1; 没挂掉一只,就减去1。   我们首先想到的是创建一个全局变量来充当这个计数器,但这么做的后果是程序中的任何代码都可以修改这个计数器,稍不小心就会在程序里留下一个难以查堵的漏洞。 所以坚决不建议在非必要的时候声明全局变量。   我们真正需要的是一个只在创建或删除对象时候才允许访问的计数器。 这个问题必须使用 C++ 的静态属性和静态函数才能完美地得到解决。   C++ 允许我们把一个或多个成员声明为属于某个类,而不是仅属于该类的对象。(就是说这个成员仅能让该类强暴) 这么做的好处是程序员可以在没有创建任何对象的情况下调用有关的方法。   另外一个好处是能够让有关的数据仍在该类的所有对象间共享。

创建一个静态属性和静态方法:

只需要在它的声明前加上 static 保留字即可。 关于static的巩固学习 好吧,大家都晕晕了吧?还是让例子来解释上边的纯理论:example.cpp(课件及源代码下载地址) [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://urlxf.qq.com/?6NJJn2A']视频下载[/Downlink] [Downlink href='http://kuai.xunlei.com/d/LAGAOVHVLGGT']备胎下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2012/04/02/3846188.html

静态属性和静态方法 - C++快速入门21相关推荐

  1. 静态属性和静态方法2 - C++快速入门22

    静态属性和静态方法2 让编程改变世界 Change the world by program 静态方法 嗯,还是静态方法?!这阵子有鱼油表示对该方法的特色还是有点云里雾里还有那个神神兮兮的this指针 ...

  2. PHP中的静态属性、静态方法、常量属性

    2019独角兽企业重金招聘Python工程师标准>>> 1.静态属性.静态方法 在面向对象编程中,我们不仅可以通过对象访问方法和属性,还可以通过类来访问它们.这样的方法和属性就是&q ...

  3. php静态方法怎么调用非静态属性,关于静态方法不能调用类中的非静态属性的理解...

    class test{ public $a; public function game(){ echo "123"; } public static function name() ...

  4. class类,静态属性 以及 静态方法

    class  创建类         class People{             constructor(name="王一",age=16) {      // const ...

  5. php中如何声明静态属性,PHP使用static关键字声明静态属性和静态方法

    PHP使用static关键字声明静态属性和静态方法 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法. 静态属性和静态方法不需要在被类实例化的情况下就可以直接使用. ...

  6. 静态属性、静态方法、静态代码块

    1.什么是静态属性.静态方法 用static修饰符修饰的属性和方法叫作静态属性和静态方法 静态属性和非静态属性的区别: 1.在内存中存放的位置不同:所有static修饰的属性和方法都存放在内存的方法区 ...

  7. sv中静态属性和静态方法

    静态属性 类的内存空间是动态分配和释放的,同一个类的不同实例,即使其中变量的名称相同,也是不同的东西. 如果需要一个变量,这个变量能够被一个类的所有实例共享,那么就需要声明这个变量为static. 可 ...

  8. C++ 静态属性和静态方法

    为什么需要静态属性和静态方法 静态成员是类级别的,也就是它和类的地位等同,而普通成员是对象(实例)级别的.类级别的成员,应先于该类任何对象的存在而存在,所以类的静态成员会被该类所有的对象共享,因此不能 ...

  9. 类属性、类方法;私有属性、公有属性;私有方法、公有方法;静态属性、静态方法;python的命名规范__xx__\__xx\_xx(自用笔记)

    Ⅰ.类属性.类方法(类和实例都能调用类属性和类方法) 类是一个特殊的对象,Python 中 一切皆对象:class AAA: #定义的类属于 类对象obj1 = AAA() #属于 实例对象 除了封装 ...

  10. PHP中普通方法如何调用静态属性,php中的静态属性和静态方法如何调用

    静态属性.方法(包括静态与非静态)在内存中,只有一个位置(而非静态属性,有多少实例化对象,就有多少个属性). (推荐教程:php图文教程) 实例: header("content-type: ...

最新文章

  1. 1470篇!CVPR2020结果出炉(附13篇论文链接/开源代码/解读)
  2. hbase源码系列(一)Balancer 负载均衡
  3. 线性代数学习笔记(十一)
  4. java permgen内存泄漏问题处理
  5. AOP+自定义注解 实现service统一的异常信息处理
  6. java基础—IO流概述
  7. 从零开始编写自己的C#框架(11)——创建解决方案
  8. cassandra根据用户名密码登录cqlsh
  9. java jstl 库下载_jar包下载,jstl.jar和standard.jar下载
  10. 前端第二天 表格/表单和H5
  11. 【电子签章】HTML格式合同转化成PDF文件
  12. ORACLE--面试知识点
  13. 免费c++图片操作库(类)
  14. 推荐9款便签云生成工具
  15. 基于Android技术的物联网应用开发
  16. @ConditionalOnProperty
  17. ubuntu 16.04 内存清理方法总结
  18. html5期末大作业——HTML+CSS公益关爱残疾人( 6个页面)
  19. linux sftp拷贝文件夹,Linux下sftp命令传输文件的例子
  20. SQL Error: 904, SQLState: 42000

热门文章

  1. 中基协会长洪磊:尽快制定大类资产配置管理办法 推非保本理财转型
  2. 鹏华基金:科技赋能 打造公募基金的头部机构
  3. SQLite:注意查询条件中空格的影响
  4. 【土壤分类】基于matlab GUI多类SVM土壤分类【含Matlab源码 1398期】
  5. 【图像隐写】基于matlab GUI DCT数字水印嵌入与提取【含Matlab源码 1323期】
  6. 【图像提取】基于matlab PCA-CSIFT feature图像特征提取【含Matlab源码 1174期】
  7. 【汇率预测】基于matlab模拟退火算法优化BP神经网络汇率预测【含Matlab源码 689期】
  8. 【TSP】基于matlab遗传算法求解30城市旅行商问题【含Matlab源码 135期】
  9. mysql limit 算法_MYSQL分页limit速度太慢
  10. seata 集群_阿里巴巴和蚂蚁金服联手搞事情: Seata 我们走~