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类的指针,我无法理解再次进行类型转换的需要。
答案 0 :(得分:3)
这里不需要进行类型转换。它是多余的,可移动的。
答案 1 :(得分:1)
简单地说,无论何时在C ++代码中看到C风格的强制转换,都是错误的。对于非常罕见的需要演员表的场合,你应该使用static_cast
,或者甚至更少reinterpret_cast
。在我自己的代码中出现的唯一一个强制转换是dynamic_cast
,当你真的需要找到某种东西时需要它,但这也很少见。