- 在栈上常见对象特点最显著的就是最后系统调用完以后销毁对象
- 在堆上创建对象了,即是自己申请对象资源空间自己销毁。
好吧,看一下在栈上创建对象吧。
class StackOnly
{
public:
static StackOnly CreateObject()
{
return StackOnly();
} private:
StackOnly()
{}
};
栈上创建对象,嗯是没有啥说的,只要在调用构造函数时候没有使用new,operator就行了
在来看一下在堆上创建对象吧
class HeapOnly {
public:
static HeapOnly* CreateObject()
{
return new HeapOnly;
} private:
HeapOnly() {}
HeapOnly(const HeapOnly&);
HeapOnly(const HeapOnly&) = delete;
};
将拷贝构造函数,构造函数私有化,防止直接的调用拷贝构造函数,和构造函数,然后在public中设置一个静态成员函数完成堆对象的创建