[語法] 想請問關於宣告type迴圈的問題

看板C_and_CPP (C/C++)作者 (忘水)時間16年前 (2010/06/09 01:41), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/1
下面是我的code Node list[10]; for( i = 0; i<10 ; i++) { list[i] = new Node(); } 用來宣告type為Node的array 可是編譯的時候 卻會出現錯誤 編譯器的錯誤訊息: |In function `int main()':| |error: no match for 'operator=' in 'list[i] = (((Node*)operator new(12u)), (((*<anonymous>) <unknown operator> Node()), <anonymous>))'| 想請問版上各位這樣子的宣告是哪裡出錯呢? 因為最近剛學C++ 的 class觀念 所以還有些不懂 請大家指教 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.172.224.206

06/09 01:43, , 1F
new 傳回的是 pointer type。
06/09 01:43, 1F

06/09 01:44, , 2F
new Node(); 回傳的是 Node *, 因此要 Node * list[10];
06/09 01:44, 2F

06/09 01:45, , 3F
Node list[10]; 就像 int l[10]; 一樣, 不需要額外再替
06/09 01:45, 3F

06/09 01:45, , 4F
list[i] 做new, 不然就是用Node *list[10]宣告....
06/09 01:45, 4F

06/09 01:46, , 5F
哇塞~~t大j大也這麼晚還沒睡....XD
06/09 01:46, 5F

06/09 01:46, , 6F
喔喔 感謝各位^^ 所以只需要用Node list[10]的意思
06/09 01:46, 6F

06/09 01:50, , 7F
該說不需要(也type不合)額外替list[i]做new Node;的動作
06/09 01:50, 7F

06/09 01:51, , 8F
看你要怎麼使用list[]而定....@_@"
06/09 01:51, 8F
文章代碼(AID): #1C3e2_26 (C_and_CPP)
文章代碼(AID): #1C3e2_26 (C_and_CPP)