【问题标题】:How static variable in classes being allocated in memory?类中的静态变量如何在内存中分配?
【发布时间】:2020-11-17 23:18:31
【问题描述】:
class car
{
public:
    static int i;
};

int car::i = 7;
int main ()
{   
    cout << car::i;
    return 0;    
}

一个静态变量是否因为它在类外部的定义而分配内存并在类内部声明它只是为了成为类的成员?为什么当它变为常量时我们没有在类之外定义它?

我知道静态变量在内存中的全局和静态变量段中分配,静态变量不属于任何对象。

【问题讨论】:

  • 每个问题回答一个问题
  • “以及为什么当它变为常量时我们没有在类之外定义它” 这实际上是错误的。您仍然需要在声明之外初始化 static 成员(除了常量整数或枚举类型)。
  • 它可以在类内部使用inline从c++17开始定义
  • The reference documentation 应该回答你所有的问题 ;)
  • @Fareanor 当它变为常量时,我​​们不需要在外部定义它。我们可以在里面定义它,这不会发生任何错误

标签: c++ variables static allocation


【解决方案1】:

类中的静态变量如何在内存中分配?

静态类变量具有静态存储。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 2014-05-21
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    相关资源
    最近更新 更多