C ++中的静态数据成员(带示例)

当我们在类中声明一个普通变量(数据成员)时,这些数据成员的不同副本将与关联的对象一起创建。

在某些情况下,当我们需要一个对所有对象都相同的公共数据成员时,我们不能使用常规数据成员来做到这一点。为了满足这种情况,我们需要静态数据成员。

在本文中,我们将学习静态数据成员和静态成员函数,它们如何声明,如何使用和不使用成员函数进行访问?

C ++静态数据成员

它是一个用static关键字声明的变量,也称为类成员,因此仅为所有对象创建该变量的单个副本

通过一个成员函数对静态数据成员进行的任何更改都将反映在所有其他对象的成员函数中。

声明

static data_type member_name;

定义静态数据成员
应该按照以下语法在类外部定义:

data_type class_name :: member_name =value;

如果要在成员函数中调用静态数据成员,则应将成员函数声明为静态(即,静态成员函数可以访问静态数据成员)

考虑示例,这里静态数据成员正在通过static成员函数进行访问:

#include <iostream>
using namespace std;

class Demo
{
	private:	
		static int X;

	public:
		static void fun()
		{
			cout <<"Value of X: " << X << endl;
		}
};

//定义
int Demo :: X =10;


int main(){
	Demo X;

	X.fun();
	
	return 0;
}

输出结果

Value of X: 10