看到下面的代码:将这项工作类型转换C++
ap = &abr;
为什么这里的代码使用动态转换从here
采取
void simple_dynamic_casts()
{
AB ab;
B* bp = (B*)&ab; // cast needed to break protection
A* ap = &ab; // public derivation, no cast needed
AB& abr = dynamic_cast<AB&>(*bp); // succeeds
ap = dynamic_cast<A*>(bp); assert(ap != NULL);
bp = dynamic_cast<B*>(ap); assert(bp == NULL);
ap = dynamic_cast<A*>(&abr); assert(ap != NULL);
bp = dynamic_cast<B*>(&abr); assert(bp == NULL);
}
代码。我还没有试过编译这段代码。
为什么-1表示 – 2009-11-07 18:44:19