我在如何处理get
类的SetOfCells
方法中的模板值返回时遇到问题。
是否可以按下图所示方式进行?这样做的正确语法是什么? (我使用cellParent
指针数组指向每个单元格)
template <class T>
class cell : public cellParent
{
.....
T get() { return Val;}
.....
private:
T val;
};
class SetOfCells
{
....
template<class T> T get(int cellIndex)
{
return cellArray[cellIndex]->get();
}
....
private:
cellParent** cellArray;
};
答案 0 :(得分:0)
SetOfCells
使用cellParent
- 要么未定义template <class T> T get(int cellIndex)
,要么定义它,但未在cell
类中重写。
请注意不可能执行您要执行的操作:您无法在C ++中覆盖模板成员函数。
所以,我的建议是让SetOfCells
成为模板类并拥有cell<T>**
成员。
template <class T>
class SetOfCells
{
....
T get(int cellIndex)
{
return cellArray[cellIndex]->get();
}
....
private:
cell<T>** cellArray;
};