我听说该static_cast函数应该优先于C风格或简单的函数式转换.这是真的?为什么?
我有一些层次结构:基础,派生类和一些存储用户数据的结构为void*.该void可以存储Base和Derived类指针.我不知道存在什么基本或派生指针的主要问题.
class Base
{
public:
int type;
};
class Derived: public Base
{};
Base* base;//init base pointer
Derived* derived;//init derived pointer
void* base_v = base;
void* derived_v = derived;
//void pointers are correct. They point to base and derived variables.
//try to get type field after converting pointers back
Derived* d_restored = (Derived*)derived_v;//d_restored correct
Base* b_restored = (Base*)base_v;//b_restored correct
Base* d_restored_to_base = (Base*)derived_v;// INCORRECT
如何将void*转换为两个指针的[type]字段?提前致谢.