看板 EE_DSnP 關於我們 聯絡資訊
在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
ric2k1:在外面要用 new [10]... 裡面自然會變成 new [](144)... 05/06 14:54
ric2k1:new A(10)是在呼叫constructor,大家寫 code 寫到暈掉了吧XD 05/06 14:55