所以我这样做:
class A;
class B : public A;
class C : public B;
vector<A*> *vecA;
vector<C*> *vecC;
我想将一个vectC转换成一个vecA。
vector<A*> *_newA = static_cast< vector<A*>* >(vecC); //gives an error
所以我使用 void 指针作为缓冲区和强制转换:
void *buffer = vecC;
vector<A*> *_newA = static_cast< vector<A*>* >(buffer); //works
这是有效的吗?还有另一种方法吗?