我无法解决c ++模板继承相关代码中的错误。

template <class row>

struct tableBase
{
    typedef row pkeytype;

    int k;
};


template <typename row>
struct table:tableBase<typename row::pkeytype>
{
    row r;
};


 struct astruct {

    typedef int pkeytype;
    char y;
};



table<astruct> atable;

tableBase<astruct>  * u=&atable;


错误:初始化时无法将table<astruct>*转换为tableBase<astruct>*

最佳答案

这是因为table<astruct>的父级是tableBase<int> NOT tableBase<astruct>,这是两个完全不相关的类型。

不幸的是,由于我无法推测您要在此处完成的工作,因此无法提供任何建议的解决方案。

08-16 04:14