作者ijb ()
看板EE_DSnP
标题[问题] newObjs 要如何使用?
时间Tue Dec 12 09:20:50 2006
我想要alloc一块size_of(MemBlock)记忆体时
由MemTestObj中, overload "new" 这个operator後,
做return(void *)(_memMgr->alloc(t), 这个t应该是MemBlock吧(我猜想的)
如果上面是正确的话,那在MemTest::newObjs(size_t n)时,
应该就可以写new MemBlock;
但compiler提供的错误讯息如下:
memTest.h:53: error: expected type-specifier before 'MemBlock'
memTest.h:53: error: expected `;' before 'MemBlock'
我知道在new Template<class T>时应该要做new T(size_t, void*);
e.g new int(20);
因为只写int* p = new int; compile会出现
new.cpp:8: error: expected type-specifier before ';' token
new.cpp:8: error: invalid conversion from 'int' to 'void*'
new.cpp:8: error: initializing argument 2 of 'void* operator new(size_t, void*)'
但我的疑问有2
1. 20指的应该是size_t吧,那void*是什麽,而且size_t也有点怪怪的,想请问各位高手
这个20在c里面代表的是??? int ?? or 一个virtual的数字???
2. 20若指的是void*,那size_t以上面的例子又是多少呢?
最後,因为MemBlock的constructor如下
MemBlock(MemBlock<T>* n, size_t b) : _nextBlock(n)
所以new MemBlock(para_1, para_2); para_1, para_2又该怎麽传入呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.68.73.11
※ 编辑: ijb 来自: 219.68.73.11 (12/12 10:31)
1F:推 valken:t是指# of bytes不是block数吧 12/12 13:34
2F:→ valken:MemBlock constructor的参数 就看它有哪些member data 12/12 13:34
3F:→ valken:根据需要合理的填入吧 12/12 13:35
4F:推 ijb:嗯..谢谢!!! 12/12 13:55