У меня есть два класса, A и B. A является родительским классом B, и у меня есть функция, которая принимает указатель на класс типа A, проверяет, относится ли он также к типу B, и если да, то вызывает другую функция, которая принимает указатель на класс типа B. Когда функция вызывает другую функцию, я передаю reinterpret_cast(a) в качестве параметра. Если это кажется неоднозначным, вот пример кода:
void abc(A * a) {
if (a->IsA("B")) { //please dont worry much about this line,
//my real concern is the reinterpret_cast
def(reinterpret_cast<B *>(a));
};
};
Итак, теперь, когда вы знаете, как я вызываю «def», мне интересно, действительно ли reinterpret_cast возвращает указатель типа B, который будет отправлен в качестве параметра для def. Буду признателен за любую помощь. Спасибо
B*
, но это все равно очень плохо. Скорее всего, это не тот указатель, который вы ожидаете. Вместо этого вы должны сделатьstatic_cast
- person Justin   schedule 11.07.2017