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? Rev_List Rev_list 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