reinterpret_cast вектор класса A для вектора класса B

Скажи у меня два классаA а такжеBи вектор классаA как показано ниже:

class A {
    int foo;
    int bar;
    void someMethod();
};
class B {
    uint foo;
    uint bar;
    void someOtherMethod();
};
std::vector<A>  va;

и я хочу интерпретироватьva как вектор B, так какint а такжеuint являются интерпретируемыми.

Какова лучшая практика для повторной интерпретации? Например, если я хочу вызватьsomeOtherMethod() наva, Я могу сделать((std::vector<B> *)(&va))->someOtherMethod(), Но это лучшая практика?

Мне кажется, чтоreinterpret_cast<std::vector<B> >(va).someOtherMethod() не работает.

Кроме того, я работаю на C ++ 03.

-- ОБНОВИТЬ --

Извините за неправильное толкование моего собственного вопроса. И все же мой вопрос будет сильно отличаться от этого. Итак, я создал еще один вопросВот.

Я скоро закрою этот вопрос: этот вопрос можно рассматривать как самостоятельный вопрос, и я думаю, что один из приведенных ниже ответов достаточно хорош, чтобы его можно было принять.

Ответы на вопрос(3)

Ваш ответ на вопрос