在某些C++项目中,对象初始化销毁由用户定义的函数处理,而不是由constructors和destructors.
class A
{
public:
A();
virtual ~A();
void Initialize(){
// do some real object initialization here
};
void CleanUp(){
// do some real object destroy here
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我可以说明为什么要这样做的一些原因:
我想知道是否还有其他情况我们应该在用户定义的函数中进行对象初始化和销毁?
这是一个可怕的反模式.
Initialize自己的线程安全性.Initialize:这超出了您的控制范围.CleanUp:这超出了您的控制范围.CleanUp自己的线程安全性.CleanUp和销毁之间的未定义状态.(1)和(8)特别重要; 正好一个线程将调用构造函数和析构函数.它们有助于实现计划稳定性.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |