我有一个循环,我使用一个函数将 std::unique_ptr 返回到抽象类的对象。我想通过 push_back 将这些对象存储到 std::vector 中。但由于对象是抽象类型的,我得到以下错误:
error: cannot allocate an object of abstract type
为线
cells.push_back(std::move(*cell));
其中单元格是std::vector
抽象类型并且cell
是类型
std::unique_ptr<AbstractType>&& cell
(我实际上传递cell
给一个处理程序类)我知道一个人不能实例化一个抽象类型,并且当我理解 std:move 运算符时,它需要以某种方式实例化对象吗?
谁能帮我解决这个问题?还是该函数(不是我的项目的一部分)不应该返回指向抽象类型对象的唯一指针?