我需要使用动态演员空*
void *target = (MYClass*)target;//I am storing initially(to implment delegate mechanism)
....
delegateClass *delegate = dynamic_cast<delegateClass*>(target);
Run Code Online (Sandbox Code Playgroud)
它给出错误无法转换void*,我不能使用下面的代码...因为它是一个委托机制
delegateClass *delegate = dynamic_cast<delegateClass*>(((MYClass*))target);
Run Code Online (Sandbox Code Playgroud)
如何获取目标类型并实现...如果我使用typeid()我可以得到类的名称但是如何在上面的等式中使用typeid而不是(((MYClass*))target).
bdo*_*lan 13
除非变量的原始类型具有vtable(即具有虚函数),否则不能使用动态强制转换.这是因为dynamic_cast需要运行时类型信息,该信息记录在vtable中; 如果缺少vtable,编译器不知道该对象是什么类型.
您应该使用虚拟析构函数声明基类,并使用指向此基类的指针而不是void *.
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |