爲什麼我會得到一個錯誤,當我嘗試靜態澆鑄一個元素*爲int廣東話靜態鑄造類整數
typedef Element* ElementPtr
int Element::getVP (ElementPtr item)
{
return static_cast <int>(item); // I have a class called Element
}
爲什麼我會得到一個錯誤,當我嘗試靜態澆鑄一個元素*爲int廣東話靜態鑄造類整數
typedef Element* ElementPtr
int Element::getVP (ElementPtr item)
{
return static_cast <int>(item); // I have a class called Element
}
不是真的知道什麼是你的問題,但我覺得你想要的隱式轉換功能。 要轉換Element
爲int,你想operator int()
struct Element
{
operator int()
{
return i;
}
int i;
};
int Element::getVP (Element* item)
{
return (*item); // I have a class called Element
}
但它仍然不清楚爲什麼你在Element類需要getVP
。
它只是向您展示如何將結構/類轉換爲int類型。如果不是你想要的,我會刪除我的答案。
假設你想從元素A int
,你已經超負荷的,像這樣Element
類轉換運算符:
operator int() { return m_some_int; }
你可以使用(假設項目是一個指針)
return (int)(*item);
相反,如果你試圖讓指針的地址,你可以做到以下幾點:
std::size_t Element::get_address(Element* item)
{
return reinterpret_cast<std::size_t>(item);
}
那你爲什麼這麼想? – Rapptz 2013-02-10 10:52:55
你對此有何看法?這沒有多大意義。 – 2013-02-10 10:53:00
爲什麼我應該使用無效指針?我不明白 – Computernerd 2013-02-10 10:54:20