在面向对象编程中,析构函数(destructor)是用于在对象生命周期结束时执行清理操作的特殊成员函数。而静态成员(static member)是属于类本身而非类实例的成员。
class MyClass {
public:
static void cleanup() {
// 静态资源清理代码
}
static void init() {
atexit(cleanup);
// 其他初始化代码
}
};
class MyClass {
private:
static std::shared_ptr<Resource> resource;
public:
static void init() {
resource = std::make_shared<Resource>();
}
// 当程序结束时,shared_ptr会自动释放资源
};
需要清理静态资源的场景包括: