C ++类型转换向量类

时间:2009-12-01 13:24:00

标签: c++ casting types vector

我有两个矢量类:

typedef struct D3DXVECTOR3 {
    FLOAT x;
    FLOAT y;
    FLOAT z;
} D3DXVECTOR3, *LPD3DXVECTOR3;

class MyVector3{
    FLOAT x;
    FLOAT y;
    FLOAT z;
};

和一个功能:

void function(D3DXVECTOR3* Vector);

如何实现这样的目标是可能的(如果可能的话):

MyVector3 vTest;
function(&vTest);

3 个答案:

答案 0 :(得分:2)

function(reinterpret_cast<D3DXVECTOR3*>(&vTest));

一般来说,你应该避免使用reinterpret_cast

答案 1 :(得分:1)

看起来你想要一个D3DXVECTOR3的包装类。在这种情况下,只需从它继承MyVector3。然后,您可以将MyVector3 *传递给之前可以通过D3DXVECTOR3 *。

传递的任何地方

答案 2 :(得分:1)

旧的C式演员

MyVector3 vTest;
function((D3DXVECTOR3*)&vTest);