C++——【类中的static】

一、概念

声明为static的类成员,称为类的静态成员;用static修饰的成员变量,称为静态成员变量;用static修饰的成员函数,称为静态成员函数

静态成员变量一定要在类外进行初始化!

二、特性

1.静态成员为所有类对象所共享,不属于某个具体的对象,存放在静态区

 (它属于整个类,也属于这个类的所有对象,生命周期属于整个程序运行期间)

2.静态成员变量必须在类外定义,定义时不添加static关键字,类中只是声明

3.类静态成员即可用类名::静态成员或者对象.静态成员来访问

4.静态成员函数没有隐藏的this指针,不能访问任何非静态成员

 (可以用于通过函数调用获取private的静态成员变量值)

5.静态成员也是类的成员,受public、protected、private访问限定符的限制

使用场景:

*设计一个只能在栈上定义对象的类:

将构造函数用private限定,然后在public里定义一个函数调用构造函数负责创建对象。

这样想创建对象需要调用那个函数,但是要调用那个函数又需要一个对象。

这个时候静态就可以上场了,因为静态的可以不用对象来调用。于是我们把那个函数定义为静态的即可完成了。

小问题总结回顾:

Q1:静态成员函数可以调用非静态成员函数吗?

A1:不行,因为他没有this。

Q2:非静态成员函数可以调用类的静态成员函数吗?

A2:可以,因为静态的属于整个类。

你可能感兴趣的:(c++,c语言)