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
»的表达式中初始化类型为«conststd::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哦,是的!对不起,我错过了。