【发布时间】:2012-11-13 04:14:40
【问题描述】:
如何在 C++ 中初始化静态对象?我正在寻找类似 java 中的静态块的东西。
我试过了:
Foo.hpp
class Foo{
public:
static Bar b;
static String s;
static Bar setB();
};
Foo.cpp
Bar Foo::b = Foo::setB();
String Foo::s = "something";
Bar Foo::setB()
{
Bar bb;
bb.use(s);
return bb;
}
没有编译错误,但它不起作用。
非常感谢
【问题讨论】:
-
我不知道为什么它不工作,因为它应该:)
-
谢谢你们,你们说得对,我应该贴出实际代码(名字很复杂,只是不想弄乱问题)。有用。问题是我在 setB 函数中使用了另一个静态变量,该变量是在 b 之后初始化的。
标签: c++ static initialization