作者ric2k1 (Ric)
看板EE_DSnP
标题Re: [问题] getMem函数
时间Fri Apr 25 22:44:25 2008
※ 引述《fairyflame (妖精火焰)》之铭言:
: 在MemMgr和MemBlock都有出现......
: 但型态不一样
: bool getMem(size_t t, T*& ret)
: T* getMem(size_t t)
: 不懂为什麽要在两个class里面用相同的函式
: 它们之间有什麽关系吗?
: 另外, T*& ret 这样的一个写法 那个&指的是address还是reference呢?
: // 3. The return memory address is stored in "ret"
: 这句话的意思也不太懂......
: 有劳通透的大大们开示了...<(_ _)> 谢谢
OK... 这些 functions 的关系是---
T* T::new(size_t)
--> T* MemMgr::alloc(size_t)
--> T* MemMgr::getMem(size_t)
--> bool MemBlock::getMem(size_t, T*& ret)
最後 MemBlock::getMem() 要 return bool 主要是因为 MemBlock 可能会不够 memory,
所以 return false 让 caller (MemMgr) 来决定多生一块 MemBlock.
T*& 就从右边念过来 --- a reference to a T*.
讲义有讲, 请回去复习一下.
3. 就是把要 return 的 pointer 用 reference return 回去.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.121.132.230