我无法解决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>
,这是两个完全不相关的类型。
不幸的是,由于我无法推测您要在此处完成的工作,因此无法提供任何建议的解决方案。