看板 Programming 關於我們 聯絡資訊
就是我現在有三個函式是 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
zlw:C(const_cast<Packet *>(p)); 124.8.130.15 06/23 04:37
※ 編輯: besnow 來自: 122.116.252.48 (06/23 10:20)