1. 程式人生 > >只能在棧上或者堆上建立物件

只能在棧上或者堆上建立物件

C++中存放變數的地方有三個,分別是全域性/靜態變數儲存區,區域性變數儲存區
即棧,new存放的變數存放在堆上,解題的思路是:
如果只在棧上建立物件則禁止在堆上建立,重寫operator new 和operator delete
如果只在堆上建立物件則把解構函式定義為私有的,但是一定要定義一個函式把new的
物件刪除掉 void distory () const
  {

   delete this;

}

一、只能在堆上建立物件
  }

二、只能在棧上建立物件

  

如果清楚變數的建立區域這樣的問題是很容易解決的。。