Problem z Konstruktorem kopiującym

0

[C++] Konstruktor kopiujący

#include <iostream>
#include <string>

template <typename C> struct wezel //wezeł struktury działający na przekazanym typie
{
	C i;
	wezel<C> *nastepny;
};

template <typename C> class TNode //klasa TNode działająca na przekazanym typie
{
public:
	struct wezel<C> wezel;
	TNode(struct wezel<C> &struktura) //konstruktor kopiujący
		{
			wezel.i = struktura.i;
		}
};

int _tmain(int argc, _TCHAR* argv[])
{
	struct wezel<int> struktura;
        struktura.i = 15;
	TNode<int> obiekt_trzeci(struktura);
}
 

Witam. W powyższej klasie mam problem ze wspomnianym już konstruktorem kopiującym. Jak powinna wyglądać jego deklaracja, aby powyższy kod dał się skompilować?

Błędy jakie wyrzuca VS2012:
TNode<C>::wezel' : is not a type name, static, or enumerator
TNode<C>::wezel' : is not a type name, static, or enumerator
TNode<C>::wezel' : is not a type name, static, or enumerator
na linii z deklaracją konstruktora.

0

Po pierwsze to co tam masz to nie jest konstruktor kopiujący. Po drugie jak się odwołujesz do typu wezel, to nie pisz struct przed nazwą struktury, tylko po prostu wezel<C>. I po trzecie zmień nazwę atrybutu wezel w klasie TNode na cos co nie jest nazwa struktury.

0
TNode(const TNode &node) 
  {
  }

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