作者jokerspy (蘇哥)
看板EE_DSnP
標題[問題] newObjs
時間Wed May 6 14:18:23 2009
在newObjs中 我嘗試這樣寫
void newObjs(size_t n) {
// TODO
for (size_t i = 0; i < n ; i++)
{
MemTestObj * newobj = new MemTestObj(sizeof(MemTestObj));
}
}
但是compile的時候 卻遇到
memTest.h: In member function "void MemTest::newObjs(size_t)":
錯誤:對MemTestObj::MemTestObj(unsigned int) 的呼叫沒有匹配的函數
附註:備選為: MemTestObj::MemTestObj()
MemTestObj::MemTestObj(const MemTestObj&)
似乎是沒有overload成功 是我呼叫new的方式有錯嗎??
我試著改了幾種寫法
發現new的prototype是
static void* MemTestObj::operator new(size_t)
似乎傳進去的參數也沒錯阿
難道overload的new和以往
int * a= new int(10)
的傳參數方法不同嗎
還是我哪裡寫錯了呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.235
1F:推 ric2k1:在外面要用 new [10]... 裡面自然會變成 new [](144)... 05/06 14:54
2F:→ ric2k1:new A(10)是在呼叫constructor,大家寫 code 寫到暈掉了吧XD 05/06 14:55