C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C++ 限制对象创建销毁

C++中限制对象创建和销毁

作者:yy__xzz

本文主要介绍了C++中限制对象创建和销毁,通过限制构造和析构函数的访问权限,并提供静态函数接口来控制类的实例化和销毁,从而实现对对象的精确控制和管理,感兴趣的可以了解一下

一、代码

class TestMem {
protected:  // 藏起来!
    TestMem() { }      // 构造函数
    ~TestMem() { }     // 析构函数

public:
    static TestMem* Create() { return new TestMem; }  // 唯一创建方式
    static void Drop(TestMem* p) { delete p; }        // 唯一销毁方式
};

二、为什么这么写?

普通类(谁都能动)

TestMem t;        // 栈上创建
TestMem* p = new TestMem;  // 堆上创建
delete p;         // 随便销毁

限制类(只能我允许)

// TestMem t;           ❌ 不行!
// TestMem* p = new TestMem; ❌ 不行!
// delete p;            ❌ 不行!

TestMem* p = TestMem::Create();  // ✅ 只能这样创建
TestMem::Drop(p);                  // ✅ 只能这样销毁

三、三句话讲明白

1.构造函数藏起来→ 不能直接new

protected: 
    TestMem() { }

2.析构函数藏起来→ 不能直接delete

protected:
    ~TestMem() { }

3.提供两个公共窗口→ 通过静态函数操作

static TestMem* Create() { return new TestMem; }  // 创建窗口
static void Drop(TestMem* p) { delete p; }        // 销毁窗口

四、为什么要这样?

原因说明
控制数量防止创建太多对象
控制时机确保创建/销毁时做必要检查
防止误操作避免忘记delete或多次delete

到此这篇关于C++中限制对象创建和销毁的文章就介绍到这了,更多相关C++ 限制对象创建销毁内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文