設計只能在堆或者棧上建立的類

2021-06-01 05:24:30 字數 510 閱讀 5367

看到了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...