静态成员变量
Class MyClass
{
static int a;
}
int MyClass::a = 1;//定义
特点
(1)所有类的实例中,共享类中的静态成员变量
(2)类的静态成员变量在没有类的实例的情况下,依然可以访问
(3)静态成员变量的作用域属于类,但静态成员变量的内存空间不属于类;
class MyClass
{
public:
static int a;
int b;
};
int MyClass::a = 1;
int main()
{
MyClass mClass;
MyClass::a = 100;
std::cout << mClass.a << std::endl;
std::cout << sizeof(mClass) << std::endl;
}
输出:
100
4
C++17新语法允许在类的说明里面定义(要加inline关键字)
inline static int a{1};
静态成员函数
特点:
(1)没有类的实例,也可以访问类的静态成员函数
(2)类的静态成员函数不能访问非静态的成员变量
**(3)类的静态成员函数不能是const;**已经有static了,再加const是没有必要的
(4)类的静态成员函数不能使用this指针