0

クラスの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;
};
4

1 に答える 1

0

SetOfCellsuses 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;
};
于 2013-08-26T05:39:45.810 に答える