看板Programming
标 题[问题] const 转换问题..
发信站批踢踢实业 (Tue Jun 23 04:20:09 2009)
转信站ptt2!news.ntu!ptt
就是我现在有三个函式是
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
1F:推 zlw:C(const_cast<Packet *>(p)); 124.8.130.15 06/23 04:37
※ 编辑: besnow 来自: 122.116.252.48 (06/23 10:20)
2F:→ besnow:??为什麽会被重覆转呀?? 122.116.252.48 06/25 16:24