我在工作中看到了这个,它是我加入之前由人们写的。使用静态变量代替类的静态成员。就目前而言,我看不出为什么不应在此处使用类的静态成员的原因。如果我想说服这里的人们改变它,是否有什么好的借口说服他们?
我试图找到静态成员和静态变量之间的区别,似乎人们倾向于静态成员,除非有充分的理由,否则应该始终使用静态成员,但是没有提到非常现实的情况。
当前代码:
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++ ×1