2016-01-18 56 views
-6

請給我解釋一下下面的代碼片段expain下面的代碼片段

void tsfa_sol::calculate_cost(const pro_base *pb) 
{ 
    const tsfa_pro &tsfap = *(tsfa_pro*)pb; //I can't understand this line 
} 

非常感謝!

+0

這是一個類型轉換,然後是解引用。它意味着與'tsfa_pro * tpb =(tsfa_pro *)pb相同; const tsfa_pro&tsfap = * tpb;'。 – molbdnilo

+0

如果你想要任何人幫助你,你應該仔細考慮一下你在這段代碼中無法理解的東西。左手術語似乎很清楚,但我們只是不知道它是否適合您,例如 – Guiroux

+0

左手術語很簡單,但右手看到兩個指針(對不起,因爲我是一個.NET開發人員。很難理解) –

回答

0

它投影pbtsfa_pro *則取消對它的引用 換句話說,tsfap是由pb什麼指出,使用C樣式轉換到pbpro_base轉換爲tsfa_pro參考。

0

指針 「PB」 的(tsfa_pro *)PB = C風格的鑄造原型pro_base

(星)(tsfa_pro)PB =鑄造指針 「PB」 的內容的輸入tsfa_pro

常量tsfa_pro類型的& tsfap =恆定參考 「tsfa_pro」

所以,其分配所述參考(tsfap),指針(PB)的內容類型播鍵入(tsfa_pro)

希望這可以幫助