作者sobluesk (只要有希望永远不会结束)
看板EE_DSnP
标题[问题] getNext(T* p)const
时间Tue May 5 18:43:05 2009
写了一段
想来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
1F:推 yangjiunru:因为size_t是typedef unsigned int 05/05 18:48
2F:→ yangjiunru:(in your case) 05/05 18:48
3F:→ sobluesk:感谢 解决了 05/05 20:21
4F:推 ptt6161180:我觉得是因为const function内要有const data member 05/06 14:04