【发布时间】:2012-01-26 17:39:35
【问题描述】:
我有以下项目生成 foo.lib。
//foo.h:
class A
{
public:
A();
static A* i;
};
//foo.cpp:
A* i = 0;
A g_A_instance;
A::A()
{
//this constructor is not called :(
i = this;
}
我有另一个项目生成一个与 foo.lib 链接的 exe 文件。似乎没有调用构造函数 A::A() 。我怎样才能使这项工作,我是否缺少一些编译器选项?
PS:我使用的是 Visual Studio 编译器 2008
谢谢, 拉克斯万。
【问题讨论】:
-
你的意思是它没有被调用?你有错误吗?你在 exe 中有什么代码来实例化它?
-
我有一个断点,构造函数中有一个 printf,但它们都没有工作。另外,当代码运行时,静态变量 i 一直为 NULL
标签: c++ class constructor