السلام عليكم
عندما نعرف أي class يمكننا فصل تعريفه عن ال implementation الخاصة بتوابعه بأن نضع التعريف في ملف header file و نضع ال implementation في cpp file و نقوم بتضمين الملف الرأسي في ملف ال source كما يعلم الجميع
سؤالي .. لما يكون ال class معرف ك template لم أستطع القيام بالعملية البديهية السابقة !!! و الأخطاء الناتجة عن ذلك هي ليست compile error و لكن linking errors
مثلا : جرب في MS visual studio تحقيق التالي:
//test.h file
template <class T>
class nothing
{
static void do_nothing();
};
//test.cpp file
#include "test.h"
temlpate <class T>
void nothing<T>::do_nothing()
{}سوف ينجم عن هذا النص link error unresolved external symbol
المشكلة يمكن أن تحل بوضع النص المصدري source مع الملف الرأسي و لكن هذا ما لا أريده
الحل ؟؟؟؟؟
شكرا
