Ok, first problem taken care of, but why these errors? They go away if I inline the functions in the header file. Thanks for any help.
Header file
ImplementationCode:#include <iostream> using namespace std; template <class T> class Array { public: Array(int = 10); virtual ~Array() {delete [] ptr;} T &operator[](int); int getSize() const {return size;} private: T *ptr; int size; };
DriverCode:#include <iostream> #include <cassert> using namespace std; #include "t_Array.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// template<class T> Array<T>::Array(int arraySize) { size = (arraySize > 1 ? arraySize : 10); ptr = new T[size] = {0}; assert(ptr != 0); cout << "This is the class template version" << endl; } template<class T> T &Array<T>::operator[](int subscript) { assert(1 <= subscript && subscript < size); return ptr[subscript]; }
ErrorsCode:#include <iostream> using namespace std; #include "t_Array.h" int main() { Array<double> tArray(15); for (int i = 0; i < tArray.getSize(); i ++) { tArray[i] = i + 0.5; cout << tArray[i] << endl; } return 0; }
Code:Compiling... t_Array.cpp Linking... TempArray.obj : error LNK2001: unresolved external symbol "public: double & __thiscall Array<double>::operator[](int)" (??A?$Array@N@@QAEAANH@Z) TempArray.obj : error LNK2001: unresolved external symbol "public: __thiscall Array<double>::Array<double>(int)" (??0?$Array@N@@QAE@H@Z) Debug/TempArray.exe : fatal error LNK1120: 2 unresolved externals Error executing link.exe. TempArray.exe - 3 error(s), 0 warning(s)



LinkBack URL
About LinkBacks


