我正在尝试将一个大型图书馆移植到Alchemy。我遇到了一个看起来像炼金术的东西。我有一个静态成员的类。有一个使用它的静态函数。像这样:
在foo.h中:
class Foo
{
static Bar m_pBar;
static void doSomething (int a);
}
在foo.cpp中:
Bar Foo::m_pBar;
void Foo::doSomething (int a)
{
m_pBar.doSomething(a);
}
当我做Foo :: doSomething(a)时,我得到TypeError:错误#1006:value不是函数。
另一方面,如果我在静态函数中使用相同类型的局部变量(只是为了测试),它可以工作:
void Foo::doSomething (int a)
{
// Test
Bar pBarTest;
pBarTest.doSomething(a);
}
所以我的猜测是静态变量没有被初始化。这在使用Linux和Mac中的g ++以及Windows中的Visual C ++ 2008编译时工作正常,因此看起来Alchemy做错了。
有没有人遇到同样的问题?