提问人:virus00x 提问时间:11/6/2023 更新时间:11/6/2023 访问量:50
为什么我不能使用指向子类的唯一指针初始化多态向量 [duplicate]
Why can not I initialize a polymorphic vector using unique pointers to child classes [duplicate]
问:
#include <iostream>
#include <memory>
#include <vector>
class Base {};
class Child1 : public Base {};
class Child2 : public Base {};
int main()
{
std::vector<std::shared_ptr<Base>> sb {
std::shared_ptr<Child1>(),
std::shared_ptr<Child2>()
};
// std::vector<std::unique_ptr<Base>> su1 {
// std::make_unique<Child1>(),
// std::make_unique<Child2>()
// };
std::vector<std::unique_ptr<Base>> su2;
su2.push_back(std::make_unique<Child1>());
su2.push_back(std::make_unique<Child2>());
return 0;
}
在上面的代码中,注释的代码不会编译。为什么我们可以编译其他类似的代码呢?
答: 暂无答案
评论