当前位置: 首页 > news >正文

c++ static

static 成员

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

看看下面代码体会一下:

//其他类
class A
{
public://默认构造A(){n++;m++;}//拷贝构造A(const A& a){n++;m++;}//析构函数~A()	{--m;}private://累积创建了多少个对象static int n;           //注意:这里不能给缺省值, 加上一个static之后,它就不是属于某一个对象了,而是属于这个类的所有对象了,是全局的了//正在使用的还有多少个对象static int m;};

静态变量不会走初始化列表的,因为初始化列表是属于类的,是类里面的成员变量才会走初始化列表,但是静态变量是属于这个类所有对象的,所以说它不会走初始化列表,所以说我们不能给静态变量缺省值。
还有点懵?没事我们再来梳理一下:
首先我们要明白缺省值是给谁用的?
缺省值是给初始化列表用的。
初始化列表是对某个对象成员的初始化。
但是静态变量并不属于某个对象,它是属于所有对象的。
所以静态变量不能给缺省值。

以下需要注意一下:
在这里插入图片描述
在这里插入图片描述
注意:静态成员函数不能访问非静态的成员
为什么不能访问非静态的成员呢?
因为它没有this指针

http://www.lryc.cn/news/121380.html

相关文章:

  • 【数据结构】——栈、队列的相关习题
  • C++初阶之一篇文章教会你list(模拟实现)
  • 设备工单管理系统如何实现工单流程自动化?
  • ubuntu20.04.6anzhuang mtt s80
  • 【LeetCode-中等】剑指 Offer 36. 二叉搜索树与双向链表
  • Linux —— 文件系统
  • 自然策略优化的解释 Natural Policy Optimization
  • docker基本使用方法
  • 机器学习(十八):Bagging和随机森林
  • 使用蓝牙外设却不小心把台式机电脑蓝牙关了
  • 美国Linux服务器安装Grafana和配置zabbix数据源的教程
  • [ROS安装问题] rosdep update 失败报错
  • Vue2到3 Day5 全套学习内容,众多案例上手(内付源码)
  • STM32 CubeMX (uart_IAP串口)简单示例
  • Kafka:安装和配置
  • 786. 第k个数
  • 用友-NC-Cloud远程代码执行漏洞[2023-HW]
  • Transformer(二)(VIT,TNT)(基于视觉CV)
  • Scratch 详解 之 线性→代数之——求两线段交点坐标
  • Python-组合数据类型
  • vue3+vue-simple-uploader实现大文件上传
  • 自适应变异麻雀搜索算法及其Matlab实现
  • ETL技术入门之ETLCloud初认识
  • uniapp项目如何运行在微信小程序模拟器上
  • 数据挖掘全流程解析
  • 详细介绍如何对音乐信息进行检索和音频节拍跟踪
  • Java课题笔记~ HTTP协议(请求和响应)
  • 在x86下运行的Ubuntu系统上部署QEMU用于模拟RISC-V硬件环境
  • 网络爬虫选择代理IP的标准
  • RxJava 复刻简版之三,map 多次中转数据