在另一个类的模板成员函数中调用模板类中的方法



我在如何处理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;
};

最新更新