我在如何处理SetOfCells
类的get
方法中的模板值返回方面遇到了问题。
是否可以按如下所示的方式进行操作?执行此操作的正确语法是什么? (我使用 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;
};
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;
};