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

C++——static成员

        类中用static修饰的成员变量称为静态成员变量,用static修饰的成员函数称为静态成员函数。它们的声明方式与普通变量和函数的声明方式差不多,只是前面多了一个static进行修饰。

class Count
{
public:Count(){}//静态成员函数static int GetCount(){return _count;}private:static int _count;//静态成员变量声明
};

        一、静态成员变量 

        类里面的成员变量只是声明,静态成员变量和普通成员变量的初始化方式不同。普通成员变量在构造函数里初始化,而静态成员变量需要在类外面单独初始化。初始化时在静态成员变量前面加上类域,且初始化时不加static关键字。

        这时候就要奇怪了,为什么该变量被private修饰,却可以在类外通过指定类域初始化?别奇怪,因为C++就是这样规定的,做个遵守规则的人。但是,虽然可以以这种方式初始化,但是在类外面不能用Count::_count来访问变量。就当静态成员变量的初始化是个例就好。

class Count
{
public:Count(){}//静态成员函数static int GetCount(){return _count;}private:static int _count;//静态成员变量声明
};int Count::_count = 0;//在类外单独定义

        还有一个区别是:普通成员变量属于每一个类对象,存储在对象里面;静态成员变量属于类,不依赖于任何对象存在,所有对象共享同一数据。因此,静态成员变量不能在初始化列表里定义。

        二、静态成员函数

        它有两个很大的特点:

        1.无this指针,所以只能访问静态成员,不能访问非静态成员;

        2.可以直接通过类名::静态成员函数名调用,无需对象实例化。

int main()
{int ret = Count::GetCount();return 0;
}
http://www.lryc.cn/news/587190.html

相关文章:

  • win10下的wsl2扩充空间
  • CUDA 编程笔记:使用 CUDA 加速矩阵乘法
  • 代码随想录算法训练营第三十二天|动态规划理论基础、LeetCode 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 终极剖析HashMap:数据结构、哈希冲突与解决方案全解
  • 热点代码探测确定何时JITTest01
  • 深度学习图像分类数据集—水质量识别分类
  • 【计算机网络架构】环型架构简介
  • js入门01
  • Jvm优化高手-笔记
  • DTU数据处理
  • [spring6: @EnableSpringConfigured]-编译时织入
  • AWS云安全详解:账号管理与最佳安全实践
  • AI Agent开发学习系列 - langchain之Agent智能体(2):几种不同的内置agent类型
  • IPC框架
  • ID生成策略
  • ​[Dify]-基础入门7- 探索 Dify 知识库:打造专属知识大脑
  • 一些git命令
  • 系统设计 --- 双重检查锁定
  • 前端基础知识TypeScript 系列 - 04(TypeScript 中接口的理解)
  • 深度学习图像分类数据集—角膜溃疡识别分类
  • php生成二维码
  • 人工智能之数学基础:神经网络的矩阵参数求导
  • ABP VNext + 多级缓存架构:本地 + Redis + CDN
  • Redis集群方案——哨兵机制
  • 前端工程化-构建打包
  • Java 8 异步编程和非阻塞操作工具 CompletableFuture
  • DVWA CSRF漏洞分析与利用
  • C语言---自定义类型(上)(结构体类型)
  • 更换docker工作目录
  • 4. 关于CEF3 使用的一些记录及仓颉端封装的情况