如何将指针转换为引用?

时间:2013-01-15 00:05:46

标签: c++ pointers reference type-conversion

我有一个功能:

bool IntersectBoxBox(IShape3D* a, IShape3D* b)
    {
        Box* boxA = (Box*)a;
        Box* boxB = (Box)b;

        return(boxA->Intersects(boxB));
    }

当2 IShape3D 被确定为boxbox类型(有IShape3D->GetType()方法)时会调用它。< / p>

无论如何,问题是 Intersects 需要Box& box,所以我无法传递指针。是否有一种廉价的方式来转换参数?

2 个答案:

答案 0 :(得分:10)

只需取消引用您的指针(*boxB)。

答案 1 :(得分:3)

一般情况下不能这样 - 只有当你有非nullptr时才有可能。在这里涉及动态转换时,这可能确实非常相关,因为它似乎(不使用C风格的转换进行动态分派)。消除nullptr案例后,您可能确实只是取消引用指针*boxB