天天看點

設計一個隻能在堆上或棧上執行個體化的類

一道C++筆試題:設計一個隻能在堆記憶體上執行個體化的類和一個隻能在棧記憶體上執行個體化的類

隻能在堆記憶體上執行個體化的類:将析構函數定義為private,在棧上不能自動調用析構函數,隻能手動調用。也可以将構造函數定義為private,但這樣需要手動寫一個函數實作對象的構造。

隻能在棧記憶體上執行個體化的類:将函數operator new和operator delete定義為private,這樣使用new操作符建立對象時候,無法調用operator new,delete銷毀對象也無法調用operator delete。

設計一個隻能在堆上或棧上執行個體化的類
設計一個隻能在堆上或棧上執行個體化的類

 下面一個類也隻能在堆記憶體上生成,将構造函數和析構函數都定義為private,但是可以通過類的static函數建立對象,不過這個對象是不能被繼承的。

設計一個隻能在堆上或棧上執行個體化的類
設計一個隻能在堆上或棧上執行個體化的類

    本文轉自阿凡盧部落格園部落格,原文連結:http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621827.html,如需轉載請自行聯系原作者

繼續閱讀