#include<iostream>using namespace std;
class Rect {public:Rect() {count++;}~Rect() {count--;}static int getCount() {  // 静态成员函数return count;}
private:int width;int length;static int count;  // 静态成员变量count来计数
};//int Rect::count = 0; 取消注释才不会编译出错int main()
{Rect rect1;cout << "The count of Rect: " << Rect::getCount() << endl;Rect rect2(rect1);  // 新的对象需要使用老的对象来进行初始化cout << "The count of Rect: " << Rect::getCount() << endl;return 0;
}

静态全局变量不能被其他文件所用,因而其他文件能够定义相同名字的变量,而不会发生冲突。程序在内存中的四个位置:代码区,全局数据区,堆区,栈区。在静态局部变量前加static关键字,就定义了静态局部变量。特点是:

  1. 该变量在全局数据区分配内存。
  2. 始终驻留在全局数据区,直到程序结束,但其作用域为全局作用域,当定义它的函数或者语句块结束的时候,作用域结束。
  3. 静态成员在使用之前必须初始化,否则链接会出错。

一般情况下,类的静态成员变量不能在类内进行初始化.

  1. 静态数据成员不属于任何一个对象,因此并不是在创建对象的时候被定义的,这就意味着,他们并不是由类的构造函数初始化的。
  2. 必须在类的外部定义和初始化每个静态成员,定义时使用类作用域运算符。

C++类的静态成员变量相关推荐

  1. 类的静态成员变量和静态成员函数的使用方法三

    第五个例子,使用类的静态成员变量 源码打印? #include <stdio.h> class Point { public: Point() { m_nPointCount++; } ~ ...

  2. PHP 类的静态成员变量和普通成员变量对比

    有很多人可能弄不清楚,在PHP中类的静态成员变量和普通成员变量有什么区别? 1.类的静态方法只能访问静态成员变量,而不能访问非静态成员变量 2.静态成员变量不需要实例化就能访问,且访问速度快一些 3. ...

  3. C++:类的静态成员变量及静态成员函数

    写在前面: 对象与对象之间的成员变量是相互独立的.要想共用数据,则需要使用静态成员和静态方法 只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量.(因为 ...

  4. 类中静态成员变量 无法解析的外部符号

    [1]如下代码及编译错误 如标题,不做赘述. [2]原因及解决方案 原因:之所以报如上编译错误,因为静态成员变量未初始化. 解决方案:类中静态成员需要在类外进行初始化.其格式为:类型 类名::静态成员 ...

  5. C/Cpp / 类中静态成员变量和普通成员变量的区别

    2017-12-11 创建人:Ruo_Xiao 实例代码: #include <iostream> class CMan { public:CMan() {}~CMan() {} publ ...

  6. C++类静态成员变量作用域共享问题

    在C++中类的静态成员变量对于所有此类声明的变量来说共享. 也就是说你声明了一个A类,A类里包含了一个静态的成员变量test,然后声明了多个A类的类变量,这些类变量共享一个成员变量test内存空间,有 ...

  7. C++类的静态成员详细讲解

    在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...

  8. C++ 类的静态成员详细讲解

    在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...

  9. C++中的静态成员变量

    文章目录 1 C++中的静态成员变量 1.1 C++中静态成员变量的使用方法 1 C++中的静态成员变量 1.1 C++中静态成员变量的使用方法 在C++中可以定义静态成员变量: 静态成员变量属于整个 ...

最新文章

  1. animation动画不生效_关于CSS3的animation使用的一些坑,需要注意下!
  2. 综合布线工作组2008年上半年技术课题工作安排会议通知
  3. 使用TCP可靠吗?为什么可靠?
  4. 源代码的下载和编译:
  5. python堆排序求topn_Java堆排序,取得前TopN个数
  6. docker php composer 使用_如何使用Docker部署PHP开发环境
  7. java语言数组实现栈的操作_基于自定义的动态数组实现一个栈(Java语言)
  8. 递归求解全排列问题以及八皇后问题
  9. 数值分析复习(六)——常微分方程数值解法
  10. 微信小程序调查报告(一)
  11. 使用已有流量进行RFC2544测试—信而泰网络测试仪实操
  12. 佳能微单R6断电DAT文件MP4视频完美修复不卡顿
  13. css固定图片大小 vue_css3 实现图片等比例放大与缩小
  14. 倍福--温度控制案例
  15. html css 距离顶部距离,详解CSS line-height和height
  16. Imperva WAF Bypass【翻译】
  17. 集成七牛云储存-上传图片Demo
  18. 97年的欧冠决赛 多特蒙德VS尤文 中里德尔的梦
  19. 联想笔记本重装win11系统后恢复fn+q热键
  20. CM-BERT: Cross-Modal BERT for Text-Audio Sentiment Analysis--文献笔记和翻译

热门文章

  1. opencv 显示程序运行时间
  2. TE和TM主模式的介绍
  3. 由条件熵与无条件熵的关系引出的不等式证明题(不会抄答案系列)
  4. 3 ~ express ~ 静态文件托管
  5. nginx的web基础
  6. 用友u8采购发票如何取消审核
  7. 使用实例 ---- 使用NUnit在.Net编程中进行单元测试
  8. (三)cmockery中的消息打印以及可变参数相关总结
  9. bzoj4546-codechef XRQRS(可持久化Trie)
  10. Laravel 5.x 启动过程分析 [转]