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

时间:2013-08-26 05:16:59

标签: c++ class templates return-type

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

1 个答案:

答案 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;
};