例如,我有两个班级A
和B
. B
源自A
。
class A {};
class B : public A {};
我有一个唯一指针的向量,A
我可以将一个唯一指针推回该向量。
vector<unique_ptr<A>> vA;
unique_ptr<A> a(new A);
vA.push_back(std::move(a));
(1) 如何推回 的唯一指针B
?
vector<unique_ptr<A>> vA;
unique_ptr<B> b(new B);
vA.push_back(std::move(b)); //?
(2)如果向量是 for B
,如何推回一个唯一的指针A
(假设它是向下转换的)
vector<unique_ptr<B>> vB;
unique_ptr<A> a(new B);
vB.push_back(std::move(a)); //?