static_cast я изначально рассматривал но не знаю как правильно написать его,то что написано в теории не работает у меня
кто со static_cast поможет?
В теории такого не написано! Почитай, что говорит стандарт по поводу static_cast.
static_cast<T>( x ) это не тоже самое, что (T)x.
Такое преобразование возможно сделать, только с использованием костылей, типа приведения сначала к void*, что полностью ломает контроль типов.
C++ (Qt)
std::vector<unsigned char> vec;
std::vector<char> &cast_vec = *static_cast<std::vector<char> *>( static_cast<void *>( &vec ) );
Таким костылем, можно привести все что угодно, к чему угодно, и компилятор при этом будет молчать. Поэтому это опасная практика.