本文介绍了是否可以防止对象的堆栈分配,并且只允许使用“new”实例化它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以防止对象的堆栈分配,并且只允许在堆上使用'new'?
Is it possible to prevent stack allocation of an object and only allow it to be instiated with 'new' on the heap?
推荐答案
你可以这样做的一种方法是使构造函数为私有的,并且只允许通过返回指针的静态方法构造。例如:
One way you could do this would be to make the constructors private and only allow construction through a static method that returns a pointer. For example:
class Foo
{
public:
~Foo();
static Foo* createFoo()
{
return new Foo();
}
private:
Foo();
Foo(const Foo&);
Foo& operator=(const Foo&);
};
这篇关于是否可以防止对象的堆栈分配,并且只允许使用“new”实例化它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!