相关疑难解决方法(0)

为什么使用static_cast <int>(x)而不是(int)x?

我听说该static_cast函数应该优先于C风格或简单的函数式转换.这是真的?为什么?

c++ casting

628
推荐指数
9
解决办法
33万
查看次数

来自"void*"的dynamic_cast

根据这个,void*没有RTTI信息,因此从铸造void*是不合法的,它是有意义的.

如果我没记错的话,dynamic_castvoid*正在开发gcc.

你能澄清一下这个问题吗?

c++ dynamic-cast rtti void-pointers

35
推荐指数
3
解决办法
3万
查看次数

从void*转换为基类的指针

我有一些层次结构:基础,派生类和一些存储用户数据的结构为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]字段?提前致谢.

c++ casting

10
推荐指数
1
解决办法
6199
查看次数

标签 统计

c++ ×3

casting ×2

dynamic-cast ×1

rtti ×1

void-pointers ×1