C++ 将 std::vector<Derived>* 转换为 std::vector<Base> ...?

C++ casting a std::vector<Derived>* to std::vector<Base> ...?

我正在制作一个指向向量的指针向量:

    std::vector<std::vector<Base>*> all; // vector keeping pointers to vectors

问题是我有几个导出的向量 classes:

    std::vector<Derived1> derived1; // vector of derived class
    std::vector<Derived2> derived2; // vector of derived class
    std::vector<Derived3> derived2; // vector of derived class

有什么安全的方法可以将指针的类型从 vector<DerivedX> 更改为 vector<Base>

每个派生的 class 共享特定的行为,并且它们将在程序生命周期的大部分时间都存在。

我仍然不善于解释我的编程问题,如果出现任何有关细节的问题 - 请在评论中提问。

不,那不可能。 std::vector<Base>std::vector<Derived>没有关系。

换句话说:std::vector<Derived> 并非源自 std::vector<Base>