Почему я получаю сообщение об ошибке при попытке статического приведения элемента * к int
typedef Element* ElementPtr
int Element::getVP (ElementPtr item)
{
return static_cast <int>(item); // I have a class called Element
}
Не совсем уверен, что ваш вопрос, но я чувствую, что вы хотите неявную функцию преобразования.
Преобразовать Element
к инт, ты хочешь operator int()
struct Element
{
operator int()
{
return i;
}
int i;
};
int Element::getVP (Element* item)
{
return (*item); // I have a class called Element
}
Но до сих пор не ясно, зачем вам getVP
в классе Элемент.
Это просто чтобы показать вам, как преобразовать struct / class в тип int. Я удалю свой ответ, если это не то, что вы хотите.
Предполагая, что вы пытаетесь получить 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);
}