看到了csdn一篇帖子在討論這個問題,某牛給出了回答,於是加以整理了一下
設計只能在堆上分配的類
方法:將類的建構函式或者析構函式設定為私有,迫使類物件在棧的構造時編譯出錯
#include using namespace std;
class onlyheap
設計只能在棧上分配的類
過載new和delete為私有成員
#include using namespace std;
class onlystack
{public:
onlystack()
{ cout<<"構造"<
只能在棧上或者堆上建立的物件
今天在這裡面看到了這個題目,據說還是google面試題。總的思想,是把一些在棧上或者堆上面建立物件,所必須的函式設為private使得編譯報錯。比如 只能在堆上建立,不能在棧上建立。因為棧上的物件,總是要呼叫析構函式。所以把析構函式設為private,然後new出來的物件,顯式的呼叫delete就可...
只能在堆或棧上建立物件?
1.只能在堆 heap 上建立物件 禁止產生棧 stack 物件 建立棧物件時會移動棧頂指標以 挪出 適當大小的空間,再在這個空間上直接呼叫對應的建構函式以形成乙個棧物件,而當函式返回時會呼叫其析構函式釋放這個物件,再調整棧頂指標收回那塊棧記憶體 在這個過程中是不需要operator new del...
整理 只能在堆或棧上建立物件?
1.只能在堆 heap 上建立物件 禁止產生棧 stack 物件 建立棧物件時會移動棧頂指標以 挪出 適當大小的空間,再在這個空間上直接呼叫對應的建構函式以形成乙個棧物件,而當函式返回時會呼叫其析構函式釋放這個物件,再調整棧頂指標收回那塊棧記憶體 在這個過程中是不需要operator new del...