Класс C ++ для приведения типов - PullRequest
1 голос
/ 01 декабря 2009

У меня есть два векторных класса:

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 ]

2 голосов
/ 01 декабря 2009
function(reinterpret_cast<D3DXVECTOR3*>(&vTest));

Вообще говоря, вам следует избегать reinterpret_cast хотя.

1 голос
/ 01 декабря 2009

Старый C-стиль литья

MyVector3 vTest;
function((D3DXVECTOR3*)&vTest);
1 голос
/ 01 декабря 2009

Похоже, вам нужен класс-оболочка для D3DXVECTOR3. В этом случае просто наследуйте MyVector3 от него. Затем вы можете передать MyVector3 * везде, где раньше могли передать D3DXVECTOR3 *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...