2011-04-25 54 views
1
void func::open() 
{ 
RequestSession* psg = new RequestSession; 
((RequestSession*)psg)->st.ProVer = PRO_VERSION; //PRO_VERSION is macro 
((RequestSession*)psg)->st.DevID = DEVICE_ID; //DEVICE_ID is macro 
} 

我不明白需要什么类型转换,因为psg是RequestSession类的指针。在C++中进行类型转换

+1

不确定确切的情况,但它可能已被投入某种其他类型,但此铸件保留以供进一步澄清。 – 2011-04-25 07:31:28

+2

它似乎不是很清楚,是吗?:-) – 2011-04-25 07:45:37

+2

你也有内存泄漏... – murrekatt 2011-04-25 07:56:34

回答

1

简而言之,无论何时您看到C++代码中的C风格转换,都是错误的。对于非常非常罕见的场合,当需要演员时,您应该使用static_cast,或者甚至更少使用reinterpret_cast。在我自己的代码中唯一出现的是dynamic_cast,当你真的需要找到某种东西的时候需要这个东西,但这也是非常罕见的。

3

这里不需要输入类型。它是多余的和可移动的。