作者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)
推 valken:t是指# of bytes不是block數吧 12/12 13:34
→ valken:MemBlock constructor的參數 就看它有哪些member data 12/12 13:34
→ valken:根據需要合理的填入吧 12/12 13:35
推 ijb:嗯..謝謝!!! 12/12 13:55