摘要
类似于python的类变量
C++的static成员数据是不依赖于对象而存在的
是同一个类创建的多个对象共享的数据
是在类创建时就为其分配内存的
static成员数据的最大用途
实现各个该类创建的对象之间共享变量
静态成员变量的定义形式
class MyTime
{
public:
static int age;
};
内存分配机制
在编译时,就为static成员数据分配内存,
并且,后续创建对象时,不再次分配内存,
也不随对象的销毁而释放内存,
而是等待其作用域结束才会释放。
初始化方式
注意,不像Python一样在类里面进行初始化,
必须在类外进行初始化,
特别注意,不能在main函数中进行初始化。
调用方式
- 类名.成员名
cout<<MyTime::age<<endl; - 对象名.成员名
MyTime t1;
t1.age=2;
综合案例
实现一个功能: 统计调用该类创建对象的个数
#include<iostream>
#include"stdafx.h"
#include<iostream>
using namespace std;
class MyTime {
public:
MyTime()
{
this->L += 1;
printf("创建的第 %d 个对象\n",this->L);
};
public:
static int L;
};
int MyTime::L = 0;
int main() {
MyTime t1;
cout << t1.L << endl;
MyTime t2;
cout << t1.L << endl;
cout << MyTime::L << endl;
return 0;
}