看板 EE_DSnP 關於我們 聯絡資訊
※ 引述《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