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.