【问题标题】:C++ variables declaration within enum declaration枚举声明中的 C++ 变量声明
【发布时间】:2024-01-10 02:53:02
【问题描述】:

我有以下代码:

#include <iostream>
using namespace std;

enum Week_Day {SAT, SUN, MON, TUE, WED, THU, FRI} wd1 = FRI;

Week_Day wd2 = SAT;

int main()
{
    cout << "\n " << wd1;
    cout << "\n " << wd2;

    cout << "\n\n\n";
}

我搜索了声明 wd1wd2 的方式之间的区别,但在我看来这只是为了方便。

是真的,还是我错过了什么?

更新1:

好的,wd1wd2 现在都是全局变量。

还有其他区别吗?

【问题讨论】:

标签: c++ variables types enums declaration


【解决方案1】:

是的,它在第一个定义枚举并立即使用它来声明 wd1 第二个是另一个声明,无需再次重新定义。 相同的代码两个不同的地方没有区别。 另一个区别是因为他们定义的代码中的位置,第一个是全局的,而第二个是本地的。 全局意味着该变量可以在您的代码中的任何地方使用,并且每个人都知道它。但是局部变量只在一个块内有生命周期

{
SomeClass someVar;// defined here

...

// die here, the destructor will be called automatically by the runtime here
}

建议阅读here

【讨论】:

  • 越来越近,但要成为有用的答案,您需要扩展本地和全球的含义。