有没有一种方法可以延迟初始化类的静态子对象
Is there a way of lazy initializing a static sub-object of a class?
在main()启动后,是否有初始化静态类成员的方法?
假设你有这门课:
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;
}
};
请注意,它不是线程安全的,但您也可以使其线程安全。
您可以使用此对象的指针:
class SomeClass{
public:
static SomeOtherClass* p;
};
SomeOtherClass* SomeClass::p;
void main(){
SomeClass::p = new SomeOtherClass();
}
相关文章:
- 模板化类中静态成员的延迟初始化
- 我的子类的属性是延迟初始化的
- 在声明或实现中延迟初始化C++单一实例
- 使用 lambda 和可变参数模板延迟初始化对象 - 任意传递值
- 保证非 odr 使用的全局变量的延迟动态初始化
- 延迟第三方库中静态变量的初始化
- 成员变量的初始化必须延迟。此类的最佳设计选择是什么?
- C++11:对延迟初始化进行安全的双重检查锁定.可能的
- gcc中模板的非延迟静态成员初始化
- 本地静态对象的非延迟初始化
- 私有类成员延迟初始化的最佳做法
- 无锁代码中的延迟初始化
- 模板和延迟初始化
- 是否可以在初始化列表中使用延迟指针
- 带有转发的延迟初始化
- 有没有一种方法可以延迟初始化类的静态子对象
- 堆栈对象的延迟初始化
- c++类成员和延迟初始化
- 延迟初始化缓存..我如何使它线程安全
- 延迟初始化