main()之前不需要的构造函数调用

时间:2012-07-16 11:32:27

标签: c++

我正在使用 pthreads 处理一些多线程代码。当我发现一些内存泄漏(通过 valgrind )时,我只是添加了一些

cout << " new [some name of class for me]" << endl;

部分构造函数,因为我以为我已经删除了所有这些。这显示其中一部分是在 main()之前启动的。 我已从main()中删除了所有内容,因此它看起来像:

int main(){
    return 0;
}

即使没有任何 #includes ,仍会调用这些构造函数。我认为在这种情况下应该调用前面代码中的任何内容。我在eclipse中使用了“project clean”选项并尝试删除二进制文件( Debug / Release )。什么都没有帮助..

那是什么目的?我还能做什么? 提前致谢。

1 个答案:

答案 0 :(得分:5)

globalstatic变量在main之前初始化。除了在函数内声明的static变量。它们在第一次通话时初始化。所以我认为你应该看看静态和全局变量