如何解决“无法使用类型为value_type(又称为Derived *)的左值初始化Base *类型的返回对象?

用户名

我有一个基类和一个派生类。当我尝试将派生类指针转换为基类指针时,出现编译错误。

class Base  {
  ..
}

class Derived: public Base {

}

class X {
    public:
        Base* getWriter(int shard) {
            return writers[0][shard];
        }
    private:
        mutable vector<vector<Derived*>> writers_;
}

我得到的错误是

错误:无法
在“ return writers [0] [shard];”行上用类型为“ value_type”(也称为“ Derived *”)的左值初始化类型为“ Base *”的返回对象

1201程序警报

头定义X不包括限定类的头Derived,所以编译器不知道之间的关系BaseDerived

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章