[問題] const 轉換問題..

看板Programming作者時間16年前 (2009/06/25 11:01), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串4/5 (看更多)
就是我現在有三個函式是 A( const Packet *p) B(Packet *p) C(Packet *p) 而Packet是一個struct的型態。 現在原本是 =================================== B (Packet *p){ ... C(p); return; } =================================== 可是我現在希望可以透過A函式。可是又沒法拿掉const。因為拿掉會有問題。 要變成: ----------------------------------- B (Packet *p){ ... A(p); retuen; } A (const Packet *p){ ... C(p); ... return; } -------------------------------------- 這樣去寫的話,第一個問題就是B要傳進A的時候,Packet *p to const Packet *p 的部份會error,然後在A函式中,A要傳進C時,同樣的也會發生 const Packet *p to Packet *p 發生error。 如果用強制轉。 -------------------------------------- B (Packet *p){ ... A((const Packet*)p); retuen; } A (const Packet *p){ ... C((Packet*)p); ... return; } ----------------------------------------- 可以complier過,可是裡頭東西都有問題。不是原本的那個packet。 所以想來請教一下,有什麼方式可以解決。或是說,有辦法去轉換型態? 還是非得要用memcpy的方式去一個一個做?.. 想請教大大們,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.252.48

06/23 04:37, , 1F
C(const_cast<Packet *>(p));
06/23 04:37, 1F
※ 編輯: besnow 來自: 122.116.252.48 (06/23 10:20)

06/25 16:24, , 2F
??為什麼會被重覆轉呀??
06/25 16:24, 2F
文章代碼(AID): #1AGkXx00 (Programming)
文章代碼(AID): #1AGkXx00 (Programming)