[問題] 物件位址加1的作法

看板C_and_CPP (C/C++)作者 (青)時間16年前 (2009/06/28 09:26), 編輯推噓4(405)
留言9則, 7人參與, 最新討論串1/1
想請教一個用法 在一般的型態之下宣告一個陣列 int *ptr = new int [10]; or int ptr[10]; 可以用下面這種的取值方式 *(ptr + 1) 但是我現在的問題在於物件 就是把我的int型態改成物件的時候出了問題 我是這樣寫的,我以Test當作物件名稱 Test *Object = new Test[10]; /* * 以下設值 */ ....... ....... ....... cout <<*(Object + 1).Integer <<endl; 我這樣寫是有問題的,但是我不太清楚我錯在哪裡 還請各位給予指點,謝謝 -- 要感謝的人太多了,那就謝天吧 要改得程式碼太多了,那就改天吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.40.84

06/28 09:39, , 1F
member selection 比 dereference 優先
06/28 09:39, 1F

06/28 10:00, , 2F
(Object + 1)->Integer
06/28 10:00, 2F

06/28 11:59, , 3F
括號不嫌多 (*(Object + 1)).Integer
06/28 11:59, 3F

06/28 12:03, , 4F
謝謝各位,這樣我明白了
06/28 12:03, 4F

06/28 12:03, , 5F
原來是我少加了
06/28 12:03, 5F

06/28 12:23, , 6F
推"括號不嫌多", 尤其是compiler跟你不熟的時候 orz
06/28 12:23, 6F

06/28 18:14, , 7F
推括號不嫌多
06/28 18:14, 7F

06/29 11:26, , 8F
另, -> operator 就是讓你可以不必一天到晚 deref 再
06/29 11:26, 8F

06/29 11:26, , 9F
用 dot operator, 好好的利用吧
06/29 11:26, 9F
文章代碼(AID): #1AHiQegr (C_and_CPP)
文章代碼(AID): #1AHiQegr (C_and_CPP)