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.
-- ОБНОВИТЬ --
Извините за неправильное толкование моего собственного вопроса. И все же мой вопрос будет сильно отличаться от этого. Итак, я создал еще один вопросВот.
Я скоро закрою этот вопрос: этот вопрос можно рассматривать как самостоятельный вопрос, и я думаю, что один из приведенных ниже ответов достаточно хорош, чтобы его можно было принять.