C++类的静态成员变量实例分析
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本文小编为大家详细介绍"C++类的静态成员变量实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"C++类的静态成员变量实例分析"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2025年01月22日C++类的静态成员变量实例分析
本文小编为大家详细介绍"C++类的静态成员变量实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"C++类的静态成员变量实例分析"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
一、成员变量的回顾
通过对象名能够访问 public 成员变量
每个对象的成员变量都是专属的
成员变量不能在对象之间共享
二、新的需求
统计在程序运行期间某个类的对象数目
保证程序的安全性(不能使用全局变量)
随时可以获取当前对象的数目
下面来看示例:
#includeint gCount = 0; class Test{private: int mCount;public: Test() : mCount(0) { gCount++; } ~Test() { --gCount; } int getCount() { return gCount; }};Test gTest;int main(){ Test t1; Test t2; printf("count = %d\n", gTest.getCount()); printf("count = %d\n", t1.getCount()); printf("count = %d\n", t2.getCount()); return 0;}
输出结果如下:
虽然这段代码可以获得当前定义对象的数量,但是使用了全局变量,不能保证程序的安全性,那么有什么好的办法呢?且看下面。
三、静态成员变量
在 C++ 中可以定义静态成员变量
静态成员变量属于整个类所有
静态成员变量的生命期不依赖于任何对象
可以通过类名直接访问公有静态成员变量
所有对象共享类的静态成员变量
可以通过对象名访问公有静态成员变量
静态成员变量的特性
在定义时直接通过 static 关键字修饰
静态成员变量需要在类外单独分配空间
静态成员变量在程序内部位于全局数据区
语法规则:
Type ClassName:VarName = value;
下面来看一下静态成员变量的使用:
#includeclass Test{private: static int cCount;public: Test() { cCount++; } ~Test() { --cCount; } int getCount() { return cCount; }};int Test::cCount = 0;Test gTest;int main(){ Test t1; Test t2; printf("count = %d\n", gTest.getCount()); printf("count = %d\n", t1.getCount()); printf("count = %d\n", t2.getCount()); Test* pt = new Test(); printf("count = %d\n", pt->getCount()); delete pt; printf("count = %d\n", gTest.getCount()); return 0;}
输出结果如下:
Test* pt = new Test();
动态在堆空间生成了一个 test 对象,所以会触发构造函数的调用,所以 count 变成了 4,delete pt; 后 count 就变成 3 了。
读到这里,这篇"C++类的静态成员变量实例分析"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
变量
成员
静态
对象
C++
程序
实例
实例分析
分析
全局
文章
安全
内容
可以通过
安全性
数目
空间
结果
保证
输出
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳市昱辰网络技术有限公司
那里有软件开发的培训
服务器加密技术
服务器为什么网线只有一边亮
手机版mcec服务器怎么进
工信部软件开发如何定价
java保存文件到数据库
幼儿网络安全班会开场词
我的世界mac连接服务器
工业软件开发公式
缓存服务器管理
服务器主机功率
gp数据库similar
一切计算机网络技术
广州网络技术员培训班
mysql数据库下载失败
普通台式机如何安装服务器系统
浙江软件开发机构
网络安全严重问题个人检查
网络安全为人民体会
重庆通服软件开发公司
网络安全事件应急处置预案分级
云服务器租赁一年多少钱
拓客联盟网络技术
fivem进服务器下载不动
江阴计算机网络技术价格大全
软件开发团队的采访
扬州软件开发系统
web可以连接数据库吗
潜渊症为什么无法连接到服务器