szablon klasy, a konstruktor kopiujący w private

0

Cześć, uczę się języka C++ i nie ukrywam, że zrozumienie szablonów klas sprawia mi nielada kłopot. Prosiłbym o wytłumaczenie dlaczego nie mogę zrobić tego, co chcę tak jak w kodzie poniżej:

template <typename Type>

class Rev_List {
private:

    struct Node{
        Type item;
        Type *previous;
    };

        Node * last_node;
    long total_items;

    //operators that makes no sense for me
    Rev_List & operator=(const Rev_List &);
    Rev_list(const Rev_list &);  // !!!! TUTAJ WYSTĘPUJE BŁĄD!!!! Chcę uniemożliwić korzystanie z tego konstruktora

public:
    // puts item at the end of the list
    bool add_item(Type m_item);
    // 1 means last added item (counted from the last added item)
    bool delete_item(long it_num = 1);
    // clear whole list
    bool clear_list();
    // reinitiates list after it's cleared
    bool reinitiate();

    //constructors & destructors
    Rev_List();
    explicit Rev_List(Type m_item);
    ~Rev_List();
};

Niestety nie wiem, co robię źle. Prosiłbym o wytłumaczenie tego, dlaczego powyższa deklaracja nie działa. Błąd występuje przy konstruktorze kopiującym. Pewnie nie ma to znaczenia, ale korzystam z Ubuntu 14.10 i kompilatora GCC 4.8.2.

1

Chcę uniemożliwić korzystanie z tego konstruktora

Rev_list(const Rev_list &) = delete;
0

Niestety nie działa. Wyrzuca ten sam błąd:
error: ‘Rev_list’ does not name a type
Wydaje mi się, że parametr w konstruktorze powinien być konkretny, a nie ogólny, ale jak zrobić żeby dla każdej skonkretyzowanej klasy zrobił się konstruktor z odpowiednim typem parametru tego nie wiem...

1

A przeczytałeś chociaż błąd? RevList Revlist to dwie różne zmienne.

3

*dwa różne typy

0

O matko. Przepraszam bardzo. Dopiero zaczynam z szablonami i pierwszy raz widzę taki błąd kompilatora. Dziękuję i przepraszam

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0