C++实现一个只能在堆(栈)上生成对象的类
作者:野牛程序员:2024-01-03 21:56:46 C++阅读 2800
可以通过将类的构造函数和析构函数声明为私有的,并提供一个静态的公有成员函数来创建对象。以下是一个简单的示例:
class HeapOnlyClass { private: // 私有构造函数和析构函数 HeapOnlyClass() {} ~HeapOnlyClass() {} public: // 静态的公有成员函数,用于创建对象 static HeapOnlyClass* createInstance() { return new HeapOnlyClass(); } // 其他成员函数或数据成员... };
在这个例子中,通过将构造函数和析构函数声明为私有的,外部代码无法直接创建或销毁类的对象。相反,提供了一个静态的公有成员函数createInstance()
,用于在堆上创建对象,并返回指向对象的指针。
使用时可以这样创建对象:
HeapOnlyClass* obj = HeapOnlyClass::createInstance();
请注意,这并不是绝对安全的方式,因为在C++中仍然有其他一些方式可以绕过这种限制。但对于大多数情况下,这种方法已经足够了。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c语言二叉树的前序遍历(递归)
- 下一篇:C语言中二级指针