当前位置: 代码网 > it编程>编程语言>C/C++ > C++中限制对象创建和销毁

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

2026年03月08日 C/C++ 我要评论
一、代码class testmem {protected: // 藏起来! testmem() { } // 构造函数 ~testmem() { } // 析构函数pu

一、代码

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++ 限制对象创建销毁内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com