当我们实现static int成员时,我通常会这样

class A {
  public:
  static int a = 5;
};
但是,一旦找到下面的代码即可启用相同功能,我注意到我们可以通过A::a访问该成员。我更喜欢这样做,因为与静态int相比,不需要在main函数之前进行初始化
class A {
  public:
    enum { a = 5 };
};

哪一个更好?
使用static int有什么好处?

最佳答案


是的,在某些情况下,您需要为同一类的所有实例更改变量的值。不使用static是不可能的。
对于对象实例的所有可变数量的实例,仅创建一个静态变量副本,并请注意,只能由静态成员函数访问它们,即,如果您在类代码中的某个位置更改了静态变量的值,则将为指定类的每个对象更改。

关于c++ - 枚举成员与静态int成员?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62640390/

10-12 12:21
查看更多