将类对象指针打包成 char * 用于消息队列
是否可以通过 POSIX 消息队列正确且安全地传递类对象指针? 例如, Object *obj = new Object(); mq_send(mqdes, static_cast&obj, sizeof(obj), 1); …
为什么涉及虚拟继承时不能使用static_cast向下转型?
考虑以下代码: struct Base {}; struct Derived : public virtual Base {}; void f() { Base* b = new Derived; Derived* d = static_cast(b); } 这…
C++防御性编程:从类型安全的缓冲区中读取
假设我有一个我不拥有的类:DataBuffer。它提供了各种 get 成员函数: get(uint8_t *value); get(uint16_t *value); ... 当读取此缓冲区中包含的结构…
Union 与 static_cast(void*)
我正在编写代码,直到现在我都在使用这样的结构: struct s{ enum Types { zero = 0, one, two }; unsigned int type; void* data; } 我需要一些通用…
根据情况在 if 语句中声明不同的数据类型:如何关闭编译器?
嘿,所以我正在制作一个序列化函数,它采用基类指针'Joint',提取联合后代的'type',然后想要基于指针实际指向的任何类型的“关节”来实例化正确类型…
C++对于 C#,static_cast 为枚举
我正在尝试将一些 VC 6.0 C++ 代码转换为 C#。具体来说,我正在解析一个二进制 dat 文件,并且在转换这段代码时遇到了问题: ar.GetFile()->Read(buf,…
模板化赋值运算符问题
我想确保赋值运算符中的 *this != &rhs 。但它不会编译。有什么建议吗? template class A { public: A() { std::cout << "Default Constructor" << s…
当将 void* 转换为任何内容时,我应该使用 static_cast 还是 reinterpret_cast
static_cast 和 reinterpret_cast 似乎都可以很好地将 void* 转换为另一种指针类型。是否有充分的理由偏爱其中之一?…
关于类型转换的初学者问题
我打算对随机数生成器中的数字使用 math.h 。看来我只能在双打上使用 math.h 函数。所以: 我试图给“value”“currentValue”的值,或者至少是要转移…
在 C++ 中转换类型时出错
我有一个程序需要使用 Format();函数将字符串文字和 int 组合成 CString 变量。我尝试了几种不同的方法来执行此操作,它们的代码在这里: // declare …
qobject_cast 是如何工作的?
我刚刚在 Qt 中找到了以下代码,我有点困惑这里发生了什么。 特别是 reinterpret_cast(0) 的作用是什么? template inline T qobject_cast(const QObj…
使用 C++ 从 Void* 转换为 TYPE*样式转换:static_cast 或reinterpret_cast
因此,如果您从 Void* 转换为 Type* 或从 Type* 转换为 Void* 您应该使用: void func(void *p) { Params *params = static_cast(p); } 或 void func(…