简体   繁体   English

C ++:静态类成员是如何实现的?

[英]C++: How is static class member implemented?

Where are static data members stored? 静态数据成员存储在哪里? Is there some kind of static members table (as in "virtual methods table")? 是否有某种静态成员表(如“虚方法表”)? I've performed an experiment - seems like static members don't affect sizeof() at all. 我已经进行了一项实验 - 看起来静态成员根本不会影响sizeof() Does it mean all references to static members are converted to a fixed address? 是否意味着对静态成员的所有引用都转换为固定地址?

The C++ standard doesn't enforce a particular implementation. C ++标准不强制执行特定的实现。 But typically static class members will be implemented in a similar fashion to "free" statics. 但通常静态类成员将以类似于“自由”静态的方式实现。

However, your observation that sizeof shouldn't be affected by static members is correct. 但是,您认为sizeof不应受静态成员影响是正确的。

C ++中的静态成员的实现方式与C ++和C中的静态非成员完全相同。没有“静态成员表”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM