1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| class HeapOnly { public: static HeapOnly* CreateObject() { return new HeapOnly; } private: HeapOnly() {} HeapOnly(const HeapOnly&); };
class HeapOnly { public: HeapOnly() {} void Destory() { delete this; } private: ~HeapOnly() {} };
class StackOnly { public: static StackOnly CreateObject() { return StackOnly(); } private: StackOnly() {} };
class StackOnly { public: StackOnly() {} private: void* operator new(size_t size); void operator delete(void* p); };
|