C++中限制对象创建和销毁
更新时间:2026年03月08日 15:27:44 作者: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++ 限制对象创建销毁内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
C++ 右值引用(rvalue references)与移动语义(move semanti
文章主要介绍了C++右值引用和移动语义的设计动机、基本概念、实现方式以及在实际编程中的应用,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2025-12-12
Visual Studio 2022 上使用ffmpeg的详细步骤
文章介绍了在开发项目中配置FFmpeg库的步骤,添加包含目录、库目录、依赖项及动态库路径,确保编译器和链接器正确识别FFmpeg资源,最后通过测试验证配置有效性,感兴趣的朋友一起看看吧2025-07-07


最新评论