dynamic_cast<无效*>什么时候有用?
When is dynamic_cast<void*> useful?
5.2.7/7说了一些类似的话
如果CCD_ 1是"0";指向CCD_ 2的指针";,结果是指向CCD_ 3所指向的最派生类的指针。
这种语法的好应用是什么?dynamic_cast<void*>
应在何时使用?
IA*
和IB*
实际上是否是指向同一底层对象的指针。如果你需要的话,使用石膏。
IIRC,在具有重复非虚拟基的多重继承的情况下,甚至可以有两个IA*
指针,它们比较不相等,但指向同一对象,因为它们指向两个不同的IA
子对象。
当你有类似的东西时:
template<typename X, typename Y>
bool operator==(const X* px, const Y* py) {
return dynamic_cast<void*>(px) == dynamic_cast<void*>(py);
}
相关文章:
- 什么时候调用组成单元对象的析构函数
- 什么时候在C++中返回常量引用是个好主意
- 什么时候调用析构函数
- boost odeint什么时候真正调用观测者
- 编译器对数组声明大小的计算。什么时候发生?
- 什么时候最好在子进程中使用 CPU 或 I/O 密集型代码 [ C++ ]
- 您应该在什么时候创建自己的异常类型
- 我什么时候会默认(而不是删除)基类中的复制和移动操作
- 什么时候可以使用常量装饰调用我的重载函数?
- unordered_map什么时候返回 -1?
- QCoreApplication什么时候有效?
- sizeof(size_t) 和 sizeof(ptrdiff_t) 什么时候会有所不同?
- 什么时候用指针调用C++类构造函数
- 我不明白在这个例子中什么时候调用构造函数
- 如果真的需要std::move,我们应该什么时候声明右值refs
- P1008("prohibit aggregates with user-declared constructors")在实践中什么时候有用?
- 程序什么时候会创建多个堆
- 调用boost.asio的异步函数时,线程是什么时候创建的
- Swig/python : 什么时候需要 SWIG_init() ?
- 什么时候 std::initializer_list 是微不足道的可构造的?