Выражение должно иметь тип указателя или дескриптора

Пишу класс однонаправленного списка при помощи шаблонов. Метод TList::Print() мне необходимо переписывать для каждого типа отдельно.

Код:

template <typename T>
struct Node
{
    T data;
    Node* next;
};


template <typename T>
class TList
{
public:
    TList();
    ~TList();

    void Add( T data );
    T* GetI(unsigned int i);
    void DeleteElement(Node<T>* el, unsigned int n);

    void Print();

private:
    
    Node<T>* Head;

};

Для случая когда у меня элементом списка является экземпляр класса Ttarget:

void TList<TTarget>::Print()
{
    Node<TTarget>* tmp = Head;
    while (tmp != nullptr)
    {
        cout << "X: " <<  tmp->data->state_vector[0] << " Y: " << tmp->data->state_vector[1] << endl;
        //,,,,,,,,,,
    }
    return;
}

В выражении tmp->data->state_vector[0] требуется тип указателя и дескриптора. Что я должен написать, если tmp имеет тип Node<TTarget>* , tmp->data имеет TTarget*, state_vector имеет double*?


Ответы (0 шт):