【发布时间】:2019-12-16 13:29:41
【问题描述】:
我是新来的,我看到函数中的静态变量在第一次调用函数之前已经初始化了。,但我仍然不知道为什么它不调用函数启动前的构造函数?
class Base
{
public:
Base();
~Base();
private:
};
Base::Base()
{
cout << "I'm Base" << endl;
}
Base::~Base()
{
}
int main()
{
cout << "start program!" << endl;
static Base b;
return 0;
}
When are static function variables allocated?,我觉得情况跟我差不多。。 任何帮助将不胜感激^_^
【问题讨论】:
-
从 6.7-p4 开始:“这样的变量在控件第一次通过其声明时被初始化;”
-
“我看到函数中的静态变量是在第一次调用函数之前初始化的” 你在哪里看到的?不正确!
-
stackoverflow.com/questions/3319753/…,看到这里,我觉得情况跟我差不多……
-
@CatTom 这个问题是关于 C 的,而你的问题是关于 C++ 的。不要假设两者的工作方式完全相同,它们是不同的语言。
-
@walnut 谢谢,所以对于C来说是对的,对于c++,还有其他情况吗?
标签: c++