Template Single Linked Class

Тема в разделе "C/C++/C#", создана пользователем DavidZizu, 7 фев 2014.

Статус темы:
Закрыта.
  1. DavidZizu

    DavidZizu New Member

    Регистрация:
    7 фев 2014
    Сообщения:
    3
    Симпатии:
    0
    Выдаёт ошибку, не компилируется (для упрощения сначала сделал без класса итератора).
    Компилятор Visual Studio 2013.

    Вот сам код:
    Для header.h

    //Single linked Linear List
    #ifndef STL_List_H
    #define STL_List_H

    #include <iostream>
    #include <string>

    using std::cout;
    using std::endl;

    template<class Object>
    class List;

    template<class Object>
    struct Node
    {
    public:
    //actual data of Node
    Object data;
    //pointer to the next node
    Node *next;
    public:
    //default constructor of class Node
    Node()
    {
    data = NULL;
    next = NULL;
    }
    /*
    Node(Object input_data, Node *pointer1)
    {
    data = input_data;
    next = pointer1;
    }*/

    //Accessors
    Node *getPointer() const { return next; }
    int getData() const { return data; }

    //Mutators
    void setPointer(Node input) { next = input; }
    void setData(int data1) { data = data1; }
    };

    template<class Object>
    class List
    {
    private:
    Node<Object> *beginning;
    public:
    //typedef iterator<Object> itr;
    List()
    {
    beginning->data = NULL;
    beginning->next = NULL;
    }

    void AddToEnd(Object input)
    {
    if ((beginning->next == NULL) && (beginning->data == NULL))
    beginning->data = input;
    else
    {
    Node<Object> *temp;
    temp = beginning->next;
    while (temp->next != NULL)
    temp = temp->next;
    Node<Object> *new_one = new Node<Object>();
    temp->next = new_one;
    new_one->data = input;
    new_one->next = NULL;
    }
    }
    /*
    void RemoveFromEnd()
    {
    Node *temp;
    temp = beginning->next;
    while (temp->next != NULL)
    temp = temp->next;
    delete temp;
    return 0;
    }

    Node<Object> searchList(Object input)
    {
    Node *temp;
    temp = beginning->next;
    while (temp->next != NULL)
    temp = temp->next;
    return temp;
    }*/

    void display()
    {
    Node<Object> *temp;
    temp = beginning->next;
    while (temp->next != NULL)
    {
    temp = temp->next;
    cout << temp->data;
    }
    }
    };
    #endif


    И для test.cpp

    #include "STL_List.h"
    #include <string>
    #include <iostream>
    #include "STL_List.h"

    using std::cout;
    using std::endl;

    int main()
    {
    List<int> l1;

    cout << "ddd";

    l1.AddToEnd(10);
    }
     
Загрузка...
Похожие Темы - Template Single Linked
  1. DavidZizu
    Ответов:
    2
    Просмотров:
    1.246
  2. garrick
    Ответов:
    3
    Просмотров:
    307
  3. lmike
    Ответов:
    15
    Просмотров:
    3.885
  4. Xalet
    Ответов:
    9
    Просмотров:
    3.460
  5. Cleric-Lviv
    Ответов:
    4
    Просмотров:
    3.100
Статус темы:
Закрыта.

Поделиться этой страницей