为什么当我尝试将 element* 静态转换为 int 时出现错误
typedef Element* ElementPtr
int Element::getVP (ElementPtr item)
{
return static_cast <int>(item); // I have a class called Element
}
为什么当我尝试将 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
}
但是仍然不清楚为什么需要getVP
在 Element 类中。
它只是为了向您展示如何将 struct/class 转换为 int 类型。如果不是你想要的,我会删除我的答案。
假设您正在尝试int
从 Element 获取 a 并且您已经重载了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);
}