作者herbert570 (エニシ 縁)
看板EE_DSnP
標題Re: [問題] MemMgr
時間Sun Dec 13 00:09:01 2009
這個是從上一篇中的 reference 稍稍改過的 code
compile 和執行都會過
主要不一樣的地方在
S* alloc(size_t t){
return NULL;
}
直接 return NULL是為了讓它 compile 過...
所以如果有其他問題的話,比較有可能是這邊出了毛病...
=========================================
#include <iostream>
using namespace std;
template<class S>
class MemMgr;
template<class S>
class MemRecycleList{};
template<class T>
class HisNode
{
void* operator new[](size_t t) {return (void*)(_memMgr->alloc(t));}
static MemMgr< HisNode<T> >* _memMgr;
};
template<class S>
class MemMgr
{
public:
MemMgr(){_recycleList = new MemRecycleList<S>[32];}
S* alloc(size_t t){
return NULL;
}
private:
MemRecycleList<S>* _recycleList;
};
template<class T>
MemMgr< HisNode<T> >* HisNode<T>::_memMgr = new MemMgr< HisNode<T> >;
int main(){
HisNode<int> a;
HisNode<int> *b = new HisNode<int>;
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.243.251
※ 編輯: herbert570 來自: 140.112.243.251 (12/13 00:10)
→ dryman:我把recycle list那行comment掉是可以正常運作的@ @ 12/13 00:21
→ herbert570:不過其實 recycleList 應該不用用到 Mgr class 啦... 12/14 01:36
→ herbert570:簡單的 type cast 成 pointer 的 linklist 應該就可以 12/14 01:37
→ herbert570:work 了! 12/14 01:37
→ herbert570:或者是 HisNode 用原本 node class 的 pointer 來實作 12/14 01:38