在代码中同时使用的静态变量位置.本地或类成员

  • 本文关键字:位置 变量 成员 静态 代码 c++
  • 更新时间 :
  • 英文 :


如果在类成员中使用一次静态变量,那么声明静态变量的最佳位置是什么。我可以在类方法中将它声明为类成员或局部变量吗?什么对性能更好,或者更像干净的代码含义?例如:

class Foo
{
public:
void RunAsMember();
void RunAsLocal();
private:
static int RunsMemberCount;
};
int Foo::RunsMemberCount = 0;
void Foo::RunAsMember()
{
RunsMemberCount++;
std::cout << "RunAsMember was called " << RunsMemberCount << " time(s) ever." << std::endl;
}
void Foo::RunAsLocal()
{
static int RunsLocalCount = 0;
RunsLocalCount++;
std::cout << "RunAsLocal was called " << RunsLocalCount << " time(s) ever." << std::endl;
}
int main()
{
std::vector<Foo> vecFoos(10);
for (auto & foo : vecFoos)
{
foo.RunAsMember();
foo.RunAsLocal();
}
return 0;
}

我应该使用RunAsMember((还是RunAsLocal((?什么是最佳实践?

这实际上取决于情况。

如果变量仅用于一个函数,则RunAsLocal()是更好的选择。类成员越少,阅读代码就越容易。

如果变量用于多个函数,RunAsMember()是您唯一的选择。

最新更新