为什么所有对象的类的静态成员都相同?

fud*_*din 4 c++ static class

为什么我们不为不同的对象提供不同的静态变量副本?

Fré*_*idi 5

因为他们将成为实例成员.

静态成员的主要特征是它们由类的所有实例共享.


Naw*_*waz 5

因为C++标准(2003)中的$ 9.4.2/1部分说,

静态数据成员不是类的子对象的一部分.该类的所有对象共享的静态数据成员只有一个副本.

既然标准单独决定了什么是C++,那么C++就是如何设计的!

静态成员更像是全局对象.同一副本属于所有对象!

有关详细解答,请参阅此文章:如果没有创建该类的对象,则类的静态成员是否占用内存?