C++ 什么被认为是更好的实践,成员函数中的静态变量或私有成员变量? [关闭]

问题描述 投票:0回答:0

下面是一个简单类的两个实现,可用于计算一系列值的运行平均值。一个在成员函数中使用局部静态变量,另一个使用私有成员变量。

局部静态变量将存储在静态内存中,并且可以说是稍微更具可读性,因为该变量是在使用它的地方声明的。私有类变量将存储在堆栈中。

是否有任何其他差异,例如。关于哪个被认为是更好的做法的绩效或明确指南?

class MyClassStatic {
 public:
  double update_average(const double val) {
    static double total = 0,
                  n = 0;
    total += val;
    n += 1;
    return total / n;
  }
};
class MyClassPrivate {
 public:
  double update_average(const double val) {
    total_ += val;
    n_ += 1;
    return total_ / n_;
  }
 private:
  double total_ = 0,
         n_ = 0;
};
c++ static
© www.soinside.com 2019 - 2024. All rights reserved.