George
George

Reputation: 3953

C++: Accessing class properties in header implementation file

I am trying to implement the doubly linkedlist data structure, so I created a class that has a private property node of type Node, when I try to access this property from a function implementation using this keyword the application fails. I need help

Header file for LinkedList.hpp

#include <stdio.h>
template<class T>
class LinkedList{
    private :
    struct Node{
        T value;
        Node* next;
        Node* prev;
    }node;
    public :
        LinkedList();
        LinkedList(T item);
        void add(T item);
//        void get();
//        void insert();
//        void remove();
};

Below is the implementation of the header file.

#include "LinkedList.hpp"

template<class T>
LinkedList<T>::LinkedList(){

}


template<class T>
LinkedList<T>::LinkedList(T item){

}

template <class T>
void LinkedList<T>::add(T item){
    Node* node = new Node;
    node->value = item;
    node->prev = NULL;

    //Where the error is being generated
    node->next = this.node;

};

The error returned says:

/Users/mac/Documents/LinkedList/LinkedList/LinkedList.cpp:27:22: Member reference base type 'LinkedList<T> *' is not a structure or union

Upvotes: 0

Views: 127

Answers (1)

flogram_dev
flogram_dev

Reputation: 42868

this is a pointer, as pointed out by the error message.

Use:

this->node 

Upvotes: 3

Related Questions