【发布时间】:2014-10-01 15:17:43
【问题描述】:
我在一个 C++ 库中遇到了以下结构:
在 myClass.h 中
class myClass {
public:
static myClass* Instance();
.
.
private:
static myClass* _instance;
.
.
};
在 myClass.cpp 中
myClass* myClass::_instance = NULL;
// followed by the all other functions..
myClass::myClass() {
.
.
}
myClass* myClass::Instance() {
if (_instance == NULL) {
.
.
}
.
.
}
那么在任何函数之外将 _instance 设为 NULL 指针有什么用呢?这行代码什么时候执行?
谢谢。
编辑: 添加主函数。 myClass.cpp 中的实例函数检查指针的值。仍然不明白指针何时设置为 NULL。
int _tmain(int argc, T_CHAR* argv[]) {
myClass* instance = myClass::Instance();
.
.
.
return 0;
}
【问题讨论】:
-
@PaulR 什么?怎么是复制品?仅仅因为这两个问题都涉及静态成员并不能神奇地使它们完全相同。
-
@LightnessRacesinOrbit:在完全改变问题性质的后续编辑之前查看问题的原始版本。
-
@PaulR:我没有看到任何与您确定的问题重复的修订。
-
@LightnessRacesinOrbit:好吧,除非我无意中链接到错误的问题,他们都是关于将私有静态变量初始化为 0 以及为什么要这样做。
-
@PaulR:不,一个是如何做到这一点。另一个是为什么要这样做。
标签: c++