【C++】类和对象(十):static成员

ops/2024/11/1 17:26:24/

大家好,我是苏貝,本篇博客带大家了解C++的static成员,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
在这里插入图片描述


目录

  • 1 概念
  • 2 特性

1 概念

声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用 static修饰的成员函数,称为静态成员函数。静态成员变量一定要在类外进行初始化

我们现在想知道,一共定义了多少个A类的对象,怎么办?
定义一个全局变量n,当进入类A的构造函数/拷贝构造时,n++
在这里插入图片描述

在这里插入图片描述

但这样的结果不稳定,因为可以在任何地方对n进行修改

在这里插入图片描述

为了解决这一问题,我们下面来学习static

2 特性

  1. 静态成员不属于某个具体的对象,它属于该类的所有对象,所以在声明时不能有缺省值,存放在静态区
    在这里插入图片描述

  2. 静态成员变量必须在类外定义,定义时不添加static关键字,类中只是声明
    在这里插入图片描述

  3. 静态成员也是类的成员,受public、protected、private 访问限定符的限制

  4. 如果静态成员变量由public修饰,可用类名::静态成员变量 或者 对象.静态成员变量来访问
    在这里插入图片描述
    在这里插入图片描述

问:下图会不会报错?
在这里插入图片描述

在这里插入图片描述

不会报错,为什么?
因为n在静态区,不在对象里。虽然我们写了让p解引用,但是由于不会用到p里面成员变量,所以编译器不会解引用。

  1. 如果静态成员变量由private修饰,那就需要用静态成员函数来获得静态成员变量的值

在这里插入图片描述
在这里插入图片描述

  1. 静态成员函数没有隐藏的this指针,不能访问任何非静态成员 。它的作用就是访问静态成员变量
    在这里插入图片描述

现在我们来解决最开始的问题:如何知道一共定义了多少个A类的对象?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️


http://www.ppmy.cn/ops/130185.html

相关文章

歌舞剧《妈妈的女儿》传唱彝族经典 视听盛宴好评如潮

日前,彝族经典歌舞剧《妈妈的女儿》在四川省文化艺术中心歌剧厅精彩开演。该歌舞剧将山水之间的天籁之音、古老而经典的民间故事、独具民族特色的舞美设计、传统文化与现代表演形式完美结合,演出当晚座无虚席,好评如潮。 《妈妈的女儿》是一个…

二:Linux学习笔记(第一阶段)-- Linux命令

目录 Linux注意事项: Linux目录 Linux系统基础命令 1. 文件和目录操作 2. 文件查看和编辑 3. 文件权限和所有权 4. 系统信息 5. 网络命令 6. 文件查找 7. 压缩和解压缩 8. 系统管理 Linux注意事项: 严格区分大小写一切皆文件windows下的程序不…

重学SpringBoot3-Spring WebFlux之Reactor事件感知 API

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ Spring WebFlux之Reactor事件感知 API 1. 什么是 doOnXxx 系列 API?2. doOnXxx API 的常用方法2.1 doOnNext()示例:输出: 2.2 doOnErr…

水利水电安全员考试真题题库及答案

水利水电安全员考试真题题库及答案 58.水利水电施工企业三类人员每年再培训时间不少于()学时。 A.12 B.20 C.32 D.36 答案:B 59.双重绝缘指同时具备()。 A.工作绝缘和保护绝缘 B.工作绝缘 C.保护绝缘 D.加强…

开发之翼:划时代的原生鸿蒙应用市场开发者服务

前言 随着"纯血鸿蒙" HarmonyOS NEXT在原生鸿蒙之夜的正式发布,鸿蒙生态正以前所未有的速度蓬勃发展。据知已有超过15000个鸿蒙原生应用和元服务上架,覆盖18个行业,通用办公应用覆盖全国3800万多家企业。原生鸿蒙操作系统降低了接…

PHP海外矿物矿机理财投资源码-金融理财投资源码

PHP海外矿物矿机理财投资源码/金融理财投资源码 海外矿物矿机理财投资源码 测试不错,可以做其他产品理财,功能都没啥太大问题

清仓和斩仓有什么不一样?

在股票市场中,清仓和斩仓是两种常见的操作策略,它们各自具有不同的含义和应用场景。以下是对这两种策略的详细解析: 一、清仓 清仓,从字面意思上理解,即清理仓库,但在股票市场中,它引申为投资…

Python自动化测试中的Mock与单元测试实战

在软件开发过程中,自动化测试是确保代码质量和稳定性的关键一环。而Python作为一门灵活且强大的编程语言,提供了丰富的工具和库来支持自动化测试。本文将深入探讨如何结合Mock与单元测试,利用Python进行自动化测试,以提高代码的可…