linux gcc延时怎么写,推迟C静态对象构建 – Linux上的GCC

在C++环境中,遇到一个名为MyClass的类,其实例化需要先进行全局环境预配置。由于库限制,无法修改类内部,且必须存在一个全局实例myInstance。问题在于全局实例在doGlobalSetup()之前创建。解决方案探讨如何延迟myInstance的初始化或在实例化前执行预配置步骤。
摘要由CSDN通过智能技术生成

想象一下,我有一个名为MyClass的C类.

想象一下,我无法访问MyClass的源代码……它包含在一个库中,我只提供了库和MyClass的头文件.

想象一下,类本身需要环境预配置……例如……在调用类的构造函数之前,我需要做一些设置.该类通常用于如下:

void func() {

doGlobalSetup();

MyClass myInstance(1,2,3);

myInstance.doSomething();

...

}

现在我遇到了需要创建类的全局实例的情况,例如:

MyClass myInstance(1,3);

int main(int argc,char *argv[]) {

doGlobalSetup();

myInstance.doSomething();

}

问题是在这个故事中,MyClass的实例是在调用doGlobalSetup()之前创建的.它在调用main()之前被实例化.我想要做的是将myInstance()的创建推迟到以后,或者能够在类的实例化之前以某种方式运行doGlobalSetup().

这是对实际故事的简化……所以让我们假设:

>我无法改变MyClass的内部.

>必须有一个名为myInstance的MyClass类型的实例变量(我无法将逻辑更改为MyClass * pMyInstance).

非常感谢阅读.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值