0

私は機能を持っています:

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

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

2 つのIShape3Dboxが aおよびbox型であると判断されたときに呼び出されます (IShape3D->GetType()メソッドがあります)。

とにかく、問題はIntersectsがを受け取るBox& boxため、ポインタを渡すことができないことです。引数を変換する安価な方法はありますか?

4

2 に答える 2

10

ポインターを逆参照するだけです ( *boxB)。

于 2013-01-15T00:06:56.473 に答える
3

一般的にはできません。これは、非nullptr. 動的キャストがここに含まれている場合、これは確かに非常に関連性があるようです (動的ディスパッチに C スタイルのキャストを使用しないでください)。大文字と小文字を区別した後はnullptr、ポインタを逆参照するだけで済みます*boxB

于 2013-01-15T00:11:39.507 に答える