C++中的静态成员变量的定义和初始化

时间:2022-09-09 20:04:57
#include <iostream>
#include <string>
class Test
{
public:
        static  int i;
};
int Test::i = 0;
int main()
{
       Test a;
       std::c out <<  Test::i  << std::endl;
       std::cout <<  a.i  << std::endl;
       return 0;
}

声明:

1、加static标识。

定义:

1、static数据成员必须在类定义体的外部定义;

2、在说明前面加static,但是在定义的时候不用加static(以免与一般静态变量或对象相混淆)

3、定义时不加该成员的访问权限控制符private,public等

4、初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。

 

访问:

如果是public访问权限:

1、  访问数据成员两种方式: <类名>::<静态成员名>  或者是 <类对象>.<静态成员名>