- 在棧上常見對象特點最顯著的就是最後系統調用完以後銷燬對象
- 在堆上創建對象了,即是自己申請對象資源空間自己銷燬。
好吧,看一下在棧上創建對象吧。
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中設置一個靜態成員函數完成堆對象的創建