• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

چند فايلي + Template ؟

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
با سلام
يک برنامه نوشتم که ساختارش مثل اينه اما نميدونم چرا اذيت ميکنه :
Main :
کد:
#include "Unit10.h"
#include <conio.h>

int main(int argc, char* argv[])
{
	tst<int> obj(10);
	obj.show();
	getch();
	return 0;
}

Implement :
کد:
#include <iostream>
using std::cout ;

#include "Unit10.h"
template <typename T>
void tst<T>::show()
{
	cout << i ;
}
interface :
کد:
#ifndef Unit10H
#define Unit10H
template <typename T>
class tst
{
	public :
		T i ;
		tst<T>(T n=0) : i(n) {}
		void show() ;

};
#endif
error :
کد:
[Linker Error] Error: Unresolved external 'tst<int>::show()' referenced from C:\UNIT9.OBJ
که فايل UNIT9 همون Implement هاست

پيشاپيش تشکر
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
از چه کامپایلر و محیلی برای کامپایل استفاده کنید؟

اگه یه کامپایلر خط فرمان هست باید هر دو فایل 1 و 2 رو کامپایل و بعد هم هر دو آبجکت کد تولید شده رو با هم لینک کنید

اگه در محیط یه IDE هستید باید هر دو فایل 1 و 2 به پروژه اضافه شده باشن
 

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
آرش جان از Borland C++ و dm
اون بحث اظافه شدن هم کاملا رعایت شده
اما عجیبه
هر دو هم همین err رو میدن
این هم نتیجه تو یک کامپیوتر دیگه :
کد:
  [Linker error] undefined reference to `tst<int>::show()' 
  ld returned 1 exit status 
 C:\Dev-Cpp\save\Makefile.win [Build Error]  [Project1.exe] Error 1
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
ببخشید یکم دیر جواب میدم این ترم بد جوری کمبود وقت پیدا کردم
من کدتون رو با dev-cpp 4.9 امتحان کرد کامپایل و لینک شد بدون هیچ مشکلی
اول پروژه رو چک کنید که هر سه فایل بهش اضافه شده باشن
اگه نشد توی main اون خط #include "unit10.h"
رو تبدیل کنید به
#include "unit10.cpp"
گاهی اوقات رو ماکروسافت وِیژوال سی اینطوری جواب میده شاید رو بقیه هم کار کنه
 

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
>>ببخشید یکم دیر جواب میدم این ترم بد جوری کمبود وقت پیدا کردم
خواهش ميکنم ، چوم من هم دير سر ميزنم :)
بعد از کمي تحقيق : اکثر کامپايلر ها پشتيباني نميکنن
اما خوب از اينکه .cpp رو مطرح کرديد ، مشکل حل شد :) ، اميدوارم .obj هم بشه
 
بالا