全局变量初始化&定稿

时间:2012-12-18 09:17:44

标签: c++builder-xe2

我有一个在两个线程之间共享的关键部分:

TCriticalSection        lock_measDataBuff;

我已将此变量声明为全局变量。现在因为Delphi样式类必须使用operator new构造,所以我修改了上面的声明如下:

TCriticalSection        *lock_measDataBuff;

使用operator new初始化锁定变量的最佳位置在哪里?使用operator delete完成全局变量的最佳位置在哪里?应该是WinMain方法吗?访问锁变量的其中一个类的构造函数?或者代码中的其他地方?

2 个答案:

答案 0 :(得分:2)

我会使用std::auto_ptrboost::unique_ptr为您处理所有这些事情,例如:

#include <memory>

std::auto_ptr<TCriticalSection> lock_measDataBuff(new TCriticalSection);

答案 1 :(得分:1)

在创建全局变量时,需要在创建线程之前进行初始化,这将是主要的,并且在线程结束后释放内存的最佳位置