将类A的reinterpret_cast向量转换为类B的向量

Rob*_*Hsu 0 c++ c++03

说我有两个班A,并B和阶级的载体A如下:

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

并且我想将其解释va为B的向量,因为int并且uint可以重新解释.

重新解释的最佳做法是什么?例如,如果我想要调用someOtherMethod()va,我能做到((std::vector<B> *)(&va))->someOtherMethod().但这是最好的做法吗?

在我看来,这reinterpret_cast<std::vector<B> >(va).someOtherMethod()不起作用.

另外,我正在研究C++ 03.

- 更新 -

很抱歉我误解了自己的问题.然而,我的问题与这个问题有很大的不同.所以我创造了另一个问题在这里.

我将很快结束这个问题:这个问题可以看作是一个独立的问题,我认为下面的答案之一已经足够被接受了.

rig*_*old 7

别.你认为你能做到的任何方式都会导致未定义的行为.创建一个新的向量并复制值.