此文编写参考狄泰软件学院唐佐林老师的视频课程,如有错误之处,欢迎指正。
一、为什么需要静态成员?
静态成员实质上是为了解决数据共享的问题,因为使用全局变量会带来不安全性。
二、静态成员变量
1. 成员变量知识回顾
(1)通过对象名能够访问public成员变量
(2)每个对象的成员变量都是专属的
(3)成员变量不能够在对象之间共享
注意:
成员变量是每个对象所专属的成员,而成员函数是多个对象所共用的,当有多个对象时,是通过this指针来去实现确定当前对象的。
当我们想要实现多有对象都共享一个成员变量时,那么该如何实现呢,就是通过给成员变量加上静态属性,即声明为静态成员变量。
2. 如何定义一个静态成员变量
步骤一:在private中给成员变量加上static关键字
步骤二:在类之外进行声明和初始化
3. 静态成员变量具有哪些特性
(1)静态成员变量属于整个类所有
(2)静态成员变量的生命期不依赖于任何对象
(3)可以通过类名直接访问公有静态成员变量
(4)所有对象共享类的静态成员变量
(5)可以通过对象名访问公有静态成员变量
(6)静态成员变量需要在类外单独分配空间,因为它不专属于某个对象,因此不占用对象的空间
(7)静态成员变量在程序内部位于全局数据区,也就是说他和全局变量,局部静态变量是位于同一个区域的。
4. 下面就通过一个例程来熟悉静态成员变量的这些特性
需求如下:
实现代码1:
#include<iostream>
using namespace std;
class Ccount
{
private:
static int count;
public:
Ccount()
{
count++;
}
~Ccount()
{
count--;
}
int