小编Joh*_*nzy的帖子

静态变量与静态成员

我在工作中看到了这个,它是我加入之前由人们写的。使用静态变量代替类的静态成员。就目前而言,我看不出为什么不应在此处使用类的静态成员的原因。如果我想说服这里的人们改变它,是否有什么好的借口说服他们?

我试图找到静态成员和静态变量之间的区别,似乎人们倾向于静态成员,除非有充分的理由,否则应该始终使用静态成员,但是没有提到非常现实的情况。

当前代码:

class Foo {
public:

   static Foo *get() {
       static Foo _instance;

       return &_instance;
   }
// ...
};
Run Code Online (Sandbox Code Playgroud)

如何使用此功能:

int XXX_loadxxx(const char xxx, foo_handle *handle) {
  // just get foo ptr and return

  xxx::foo *ptr = xxx::foo::get();
  int ret = ptr->init();

  if (ret != 0) {
      return -1;
  }
  *handle = ptr;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我心中的代码应如何定义该类:

class Foo {
   static Foo _instance;
public:
      static Foo *get() {
         return &_instance;
      }
// ...
};
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我将其更改为静态成员是否有任何不同,以及原因,我将非常感谢。

c++

0
推荐指数
1
解决办法
95
查看次数

标签 统计

c++ ×1