有没有办法在 main() 启动后初始化静态类成员?
2 回答
2
一种方法是替换静态成员函数的静态成员数据。
假设你有这个课程:
class A
{
static B static_b; //static member data
};
//.cpp
B A::static_b; //definition (required)
因此,您可以将您的类定义为:
class A
{
static B static_b() //static member function!
{
static B b;
return b;
}
};
请注意,它不是线程安全的,但您也可以使其成为线程安全的。
于 2012-02-19T12:24:42.783 回答
0
您可以为此对象使用指针:
class SomeClass{
public:
static SomeOtherClass* p;
};
SomeOtherClass* SomeClass::p;
void main(){
SomeClass::p = new SomeOtherClass();
}
于 2012-02-19T12:22:42.600 回答