当我尝试将元素*静态转换为int
时,为什么会出现错误typedef Element* ElementPtr
int Element::getVP (ElementPtr item)
{
return static_cast <int>(item); // I have a class called Element
}
答案 0 :(得分:2)
不确定你的问题是什么,但我觉得你想要隐式转换功能。
要将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
。
它只是向您展示如何将struct / class转换为int类型。如果不是你想要的话,我会删除我的答案。
答案 1 :(得分:1)
假设您正在尝试从Element中获取int
并且您已经重载了Element
类的强制转换运算符,如下所示:
operator int() { return m_some_int; }
你可以使用(假设item是指针)
return (int)(*item);
相反,如果您尝试获取指针的地址,则可以执行以下操作:
std::size_t Element::get_address(Element* item)
{
return reinterpret_cast<std::size_t>(item);
}