根据我的阅读,“首次使用时构造”使用方法在第一次调用该方法时创建一个静态变量,然后在后续方法调用中返回相同的变量。我在eclipse中做了这个简单的C++程序:
#include "stdio.h";
class testClass {
public:
testClass() {
printf("constructed\n");
}
~testClass() {
printf("destructed\n");
}
};
testClass test() {
static testClass t;
return t;
}
int main() {
test();
test();
test();
printf("tests done!\n");
}
这是我的结果:
constructed
destructed
destructed
destructed
tests done!
destructed
似乎 main 创建了一个实例,然后将其销毁了 4 次。这应该发生吗?我认为析构函数应该只在程序结束时调用。我怀疑我可能以某种方式搞砸了我的计算机,但我可能只是在我的代码中犯了一个简单的错误......有什么想法吗?