我想玩對象的矢量。假設我有一個Base
類和兩個派生類:Derived_A
和Derived_B
。對象矢量的某些元素的類型轉換
class Base{...};
class Derived_A: public Base{};
class Derived_B: public Base{};
在main()
創建Derived_A
類例如10個物體的向量:
std::vector <Derived_A> array;
array.reserve(10);
現在,我想要做什麼,從這個向量的元素,挑一(或幾個)並將其類型更改爲Derived_B
。最後,我會有一個類Derived_A
的某些元素的向量,以及一些類Derived_B
。
這可能嗎?或者你有更好的方法來做到這一點?
你爲什麼要這麼做? 'Derived_A'和'Derived_B'不應該彼此流轉。 – Shoe
您不能在Derived_A的向量中放入Derived_B。你應該讓它成爲'Base'的一個矢量,然後它可以容納任何派生類。 – Barmar
@Barmar:不,一個「Base」矢量只能容納'Base'。也許你的意思是'Base *'的向量(或者一個智能指針,如果你想讓矢量管理對象的生存期)可以保存指向任何派生類的指針。 –