請給我解釋一下下面的代碼片段expain下面的代碼片段
void tsfa_sol::calculate_cost(const pro_base *pb)
{
const tsfa_pro &tsfap = *(tsfa_pro*)pb; //I can't understand this line
}
非常感謝!
請給我解釋一下下面的代碼片段expain下面的代碼片段
void tsfa_sol::calculate_cost(const pro_base *pb)
{
const tsfa_pro &tsfap = *(tsfa_pro*)pb; //I can't understand this line
}
非常感謝!
它投影pb
在tsfa_pro *
則取消對它的引用 換句話說,tsfap
是由pb
什麼指出,使用C樣式轉換到pb
從pro_base
轉換爲tsfa_pro
參考。
指針 「PB」 的(tsfa_pro *)PB = C風格的鑄造原型pro_base
(星)(tsfa_pro)PB =鑄造指針 「PB」 的內容的輸入tsfa_pro
這常量tsfa_pro類型的& tsfap =恆定參考 「tsfa_pro」
所以,其分配所述參考(tsfap),指針(PB)的內容類型播鍵入(tsfa_pro)
希望這可以幫助
這是一個類型轉換,然後是解引用。它意味着與'tsfa_pro * tpb =(tsfa_pro *)pb相同; const tsfa_pro&tsfap = * tpb;'。 – molbdnilo
如果你想要任何人幫助你,你應該仔細考慮一下你在這段代碼中無法理解的東西。左手術語似乎很清楚,但我們只是不知道它是否適合您,例如 – Guiroux
左手術語很簡單,但右手看到兩個指針(對不起,因爲我是一個.NET開發人員。很難理解) –