2011-04-25 102 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

這裏不需要輸入類型。它是多餘的和可移動的。