static 成员 ── 全类共享的一份数据
非静态成员每个对象各一份;static 成员属于类,只有一份,被所有对象共享
各对象(私有成员各一份)
类 Widget(static 只有一份)
static int count;
不属于任何对象 · 全类共享一份
0
s1
私有成员
id = 1
s2
私有成员
id = 2
s3
私有成员
id = 3
struct Widget {
static int count;
Widget(){ ++count; }
};
int Widget::count = 0; // 类外定义,分配空间
每构造一个对象 → 共享的 count 自增
三个对象看到的 count 永远相同:它只有一份
▶ 重播