как я могу наложить void * на другой тип в C++, когда я не уверен, что такое другой тип. это образец моего кода:C++ cast void * когда не уверен, что такое тип
class A
{
};
class B
{
};
void main()
{
void * p;
if (rand() % 2)
p = new A();
else
p = new B();
A * a = NULL;
B * b = NULL;
}
Я хочу код, чтобы бросить указатель р на А *, если его тип A * и поместить ответ в а, еще отливать указатель р к В * если его тип B * и поместить ответ в b.
Я пробовал static_cast и регулярный подбор, но оба они каким-то образом не выполняли проверку выполнения, и даже если приведение не корректно, они не генерируют исключение.
использование 'static_cast'. – 101010
@ 101010 Это не помогает. –
'void *' обычно не является решением ни для чего в современном C++. – crashmstr