C/C++复习之 静态成员

时间:2019-04-18
本文章向大家介绍C/C++复习之 静态成员,主要包括C/C++复习之 静态成员使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

为了实现一个类的多个对象之间的数据共享,C++提出了静态成员的概念。静态成员包括静态数据成员和静态成员函数。

  • 静态成员变量

想在一个类的多个对象之间实现数据共享有两种方法:

1、全局变量

2、静态数据成员

使用全局变量不太安全,所以有了静态成员变量。在一个类中若在一个变量前加上static 这个种变量就称为静态成员变量。静态成员变量属于类,不属于类的某个对象。

          static 数据类型 变量名;

静态成员变量的初始化和一般成员变量的初始化不同。静态数据成员变量的初始化在类的对象创建之前就进行了,且在类外单独进行。

#include<iostream>
using namespace std;
class A {
public:
	static int num2;
	A(int num);
private:
	int num1;
};
A::A(int num) 
{
	this->num1 = num;
}
int A::num2 = 100;
int main()
{
	cout << A::num2 << endl;
	return 0;
}

 准确的说,类的静态成员变量的初始化应该在类的定义之后,main函数之前的空间进行。其格式为:

数据类型 类名::静态成员变量名 = 初始值;

使用静态成员变量的方式:

类名::静态成员名

类的对象.静态成员变量名

类的对象指针->静态成员变量名

需要注意,私有的静态成员,包括静态成员变量和静态成员函数,是不能通过在类外之间访问的,只能通过类的公共成员函数访问。

  • 静态成员函数

静态成员函数定义的格式:

static  返回值类型 静态成员函数名(实参表)

静态成员函数的使用方式:

类名::静态成员变量名(实参表)

类的对象.静态成员变量名(实参表)

类的对象指针->静态成员变量名(实参表)

一般情况下,类的静态成员函数主要用来访问类的静态成员变量。

类的静态数据成员函数和一般的成员函数的区别之一:非静态成员函数有this指针,静态成员函数没有this指针。

静态成员变量、静态成员函数是属于类的一部分,而不是对象的一部分。