[c++] template i pliki naglowkowe/zrodlowe

0

mam 4 pliki:
rect.cpp / .h (kod ponizej)
test.cpp / .h
Gdy w test.cpp includuje "rect.h" to zglasza "error LNK2019: unresolved external symbol", a kiedy includuje "rect.cpp" to dziala bezproblemu.
Pytanie: Czemu trzeba includowac rect.cpp, zeby projekt sie skompilowal?

Zaznaczam ze kompiluje jako biblioteke DLL w MS VC 2005 Express

rect.cpp

template <class T>
CRect<T>::CRect(T t, T l, T w, T h) : CMain("CRect")
{
	top=t;
	left=l;
	width=w;
	height=h;
}

template <class T>
CRect<T>::~CRect()
{
}

// ...

rect.h

	template <class T>
	class DLLAPI CRect : public CMain
	{
		public:
			CRect(T t, T l, T w, T h);
			~CRect();
			// ...
	};
0
serfu napisał(a)

Pytanie: Czemu trzeba includowac rect.cpp, zeby projekt sie skompilowal?

pewnei dlatego bo nie jest dodany do projektu ale w ten sposb sie tego nie robi tylko dodajesz kazdy plik zrodlowy do swojego projektu a pliki naglowkowe ktore maja definicja interfejsu, prototypow funkcji itd zalaczasz za pomoca instrukcji #include

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