[問題] getNext(T* p)const

看板EE_DSnP作者 (只要有希望永遠不會結束)時間15年前 (2009/05/05 18:43), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
寫了一段 想來compile試試看會不會過 可是出現 memMgr.h: In member function 「T* MemRecycleList<T>::getNext(T*) const [with T = MemTestObj]」: memMgr.h:169: instantiated from 「size_t MemRecycleList<T>::numElm() const [with T = MemTestObj]」 memMgr.h:259: instantiated from 「void MemMgr<T>::print() const [with T = MemTestObj]」 memTest.h:25: instantiated from here memMgr.h:141: 錯誤:從類型「unsigned int」 到類型「MemTestObj*」 的轉換無效 可是我在memMgr.h:141行根本沒有出現unsigned int類型呀 T* _ptr = p; _ptr = *(size_t*)p; <-----這一行 return _ptr; 如果改成 T* _ptr = p; (size_t)_ptr = *(size_t*)p; return _ptr; 則錯誤訊息變成 錯誤:賦值運算左值無效 可是我在popFront()出現很類似的code 卻完全沒有問題呀 請教一下,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.17.92

05/05 18:48, , 1F
因為size_t是typedef unsigned int
05/05 18:48, 1F

05/05 18:48, , 2F
(in your case)
05/05 18:48, 2F

05/05 20:21, , 3F
感謝 解決了
05/05 20:21, 3F

05/06 14:04, , 4F
我覺得是因為const function內要有const data member
05/06 14:04, 4F
文章代碼(AID): #1A01WxsX (EE_DSnP)