C++ 返回std::vector的引用

C++ 返回std::vector的引用,c++,reference,C++,Reference,我对一些代码有问题。我有一个类,它包含一个对象的unique\ptr向量,但是当我试图返回它时,我有一个错误 错误:错误:从类型为«const std::vector»的表达式中初始化类型为«conststd::vector&»的引用无效 代码如下: class a { public: const std::vector<std::unique_ptr<AEntity>> &getEntity() const; private: const std

我对一些代码有问题。我有一个类,它包含一个对象的
unique\ptr
向量,但是当我试图返回它时,我有一个错误

错误:错误:从类型为«
const std::vector
»的表达式中初始化类型为«const
std::vector&
»的引用无效

代码如下:

class a {
    public:
const std::vector<std::unique_ptr<AEntity>> &getEntity() const;
    private:
const std::vector<std::unique_ptr<SFEntity>> m_entity;
};

const std::vector<std::unique_ptr<AEntity>> &a::getEntity() const
{
    return m_entity;
}
a类{
公众:
常量std::vector&getEntity()常量;
私人:
常量std::向量m_实体;
};
常量std::vector&a::getEntity()常量
{
返回m_实体;
}

SFEntity从AEntity继承。

派生类指针向量不会自动转换为基类指针向量。
容器是不同的类型。

vector
vector
是两种不同的类型,无论
X
Y
是如何关联的。我猜您缺少了m的常量引用“&”_entity@MarKS返回类型是一个常量引用,
m_entity
只是一个普通的value@user463035818哦,是的!对不起,我错过了。