PDA

View Full Version : سوال: چجوری سرفایل رو به کد منبع تو سی پلاس پلاس پیوند بزنم ؟



selareh
دوشنبه 13 خرداد 1392, 23:42 عصر
سلام به همه لطفا اگر کسی این موضوع رو بلد هست به من هم یاد بده ممنون :
من دارم کتاب سی پلاس پلاس دکتر دیتل ، ترجمه دکتر قلزم ویرایش پنجم رو می خونم ولی تو فصل سوم به مشکل برخوردم .

اساتیدی که این کتاب رو پاس کردن می دونن که در فصل سوم ، واسطه کلاس یا همون پیش نمونه تابع های عضو از تعریفِ کلاس جدا می شه و بعد در زمانیکه که می خوایم تو تابع main از این واسطه کلاس استفاده کنیم باید با استفاده از دستورِ پیش پردازنده نامِ سرفایلِِ مربوط به واسطه کلاس رو تو تابعِ main قرار بدیم تا بتونیم از تعریفِ تابع های عضوِ کلاسمون استفاده کنیم خب حالا سوالِ من اینه که آیا واسطه کلاس و تعریفِ کلاس و تابعِ main رو باید در یک پروژه قرار بدیم یا باید در سه پروژه قرار بدیم ؟

karbara121
سه شنبه 14 خرداد 1392, 00:35 صبح
شما وفتی می خوای کلاس بنویسی یه پروژی ایجاد می کنی مقلا من که با dev می نوشتم یه پروژه ی static library ایجاد می کردم این پروژه شامل دو فایل خواهد بود یکی با پسوند .h و دیگری .cpp که .h شامل واسطه ی است و .cpp پیاده سازی کلاس است بعد این پروژه را build می کنی که یک فایل static library ایجاد میکند که .a است حال هرکسی که بخواهد از این کلاس شما استفاده کند به این فایل و .h نیاز خواهد داشت
مشلا خود شما یک پروژه ی دیگر می سازید و در آن در تابع main از این کلاس استفاده می کنید که قواعدش را خودتون بلدید
فقط بایستی در قسمت add library فایل .a را به این پروژه اضافه کرده وسپس برنامه را کهپایل و ران کنید

selareh
سه شنبه 14 خرداد 1392, 00:44 صبح
ممنون دوست عزیز ولی من با vs 2010 کار می کنم تو vs یه مقدار موضوع فرق می کنه اگه ممکن هست همین مسائل رو تو vs 2010 توضیح بدید .

karbara121
سه شنبه 14 خرداد 1392, 01:15 صبح
حدس زدم که با vs کار می کنی
من خودم با vs خیلی کم c# کار کردم بره همین زیاد وارد نیستم ولی روند همینه شما باید یه پروژه ی جدا برای کلاس هایی که ایجاد می کنید داشته باشید تو create project بگردید یه چیزی مثل class library بهد این پروژه باید build بشه و شما می تونید در سایر پروژؤه ها از آن به همان ترتیب بالا استفاده کنید من الان vs رو com نصب ندارم والا می گشتم بهتون می گفتم
بره اینکه بفهمید چجوری بایر پروژه ایجاد کرد در vs و غیره یه کم تو اینترنت بگردید رو منابع انگلیسی هم بیشتر تکیه کنید از سایت های فارسی چیزی گیرتون نمی یاد
مطمینا سایتی است که vsc++ رو کاملا به صورت tutorial داشته باشه مشابهش رو بره c# دیدم
اینو هم اضافه کنم که vs از کتابخانه ی استاندارد c++ استفاده نمی کنه بره همین ممکنه اونچه که تو کتاب نوشته یه مقداری متفاوت با کد های vs باشه و شما در مواردی عین کد کتاب رو کپی می کنید ولی با warning برخورد می کنید کلا به نظر من دیتل واقعا کتابی عالی برای آشنایی عمیق با c++ هست ولی اگه از vs استفاده می کنید باید کتاب کمکی دیگری هم در این رابطه داشته باشید من دارم دنبال یه همچین کتابی می گردم اگه پیدا کردم لینکش رو همین جا به اشتراک می ذارم

selareh
سه شنبه 14 خرداد 1392, 01:39 صبح
خیلی ممنون از توضیحاتتون ، چیزی که من از صحبت های شما متوجه شدم اینه که اول یه Class library باز کنم بعد تعریفِ کلاس و پیش نمونه تابع های کلاس رو داخلِ اون بنویسم و بعد اون رو build کنم بعد تابع main رو تو یه پروژه دیگه مثلِ console بنویسم بعد سرفایلِ پیش نمونه های تابع رو به فایلی که تابعِ main درش هست اضافه کنم بعد فایلِ حاویِ تایعِ main رو کامپایل کنم . البته من این کارها رو همینجوری که شما گفتید انجام دادم ولی مثلِ اینکه یه جای کار رو درست انجام نمیدم در واقع توی پنجره solution هم تعدادی فایل با پسوند .h و .cpp هست که فکر می کنم با اون ها باید یه کاری انجام بدم که متاسفانه دقیقا از همین جای کار گیر می کنم و دیگه نمیدونم چجوری باید جلوتر برم .

selareh
سه شنبه 14 خرداد 1392, 01:58 صبح
فکر کنم اصلا سوالم رو از اول اشتباه مطرح کردم با توضیحاتی که شما دادید بهتره سوالم رو اینجوری مطرح کنم که :

چجوری می تونم فایلِ حاویِ تعریفِ کلاس و پیش نمونه های تابعِِ عضوِ کلاس رو به فایلِِ حاویِ تابع main پیوند بزنم ؟

karbara121
سه شنبه 14 خرداد 1392, 02:09 صبح
بله دیگه مشکلش همین پیوند زدنه در واقع اون فسمتی که من گفتم .a باید بهش پیوند زده بشه انجام نشده و واسه همین توابع کلاس شما شناخته نمی شن البته من زیاد اطلاع ندارم
ولی بالای solution tree مربوط به این پروژه تون کلیک راست کنید ببینید یه چیزی مثل add class library یا add dll library چیزایی شبیه این نداره که بتونین اون فایلی رو که بعد build ساخته شد بهش اضافه کنید
اگه نه که باید یه مطالعه در زمینه ی debug کردن در محیط vs داشته باشین

selareh
سه شنبه 14 خرداد 1392, 04:12 صبح
دوست عزیز karbara121 بالاخره با توضیحاتِ شما و اندکی سماجتِ خودم تونستم به اون چیزی که می خواستم برسم برای همین خواستم ازتون تشکر کنم خیلی ممنون کارم راه افتاد بالاخره متوجه شدم که چجوری این فایل ها رو به همدیگه پیوند بزنم باز هم ازتون تشکر می کنم