PDA

View Full Version : استفاده مجدد از یک کلاس بوسیله header و فایل کامپایل شده ی آن



hakan648
دوشنبه 05 فروردین 1392, 18:45 عصر
سلام

بنده در حال یادگیری C++ با کتاب C++ How to Program, Fifth Edition هستم.

حالا در قسمتی از کتاب که در زیر آورده شده ، گفته شده که برای پنهان سازی پیاده سازی کلاس از کلاینت ، فقط نیاز هست که فایل هدر + نسخه ی کامپایل شده ی پیاده سازی کلاس ( class.cpp ) به کلاینت داده بشه.

To hide the implementation details of GradeBook's member functions, the class-implementation programmer would provide the client-code programmer with the header file GradeBook.h (which specifies the class's interface and data members) and the object code for class GradeBook which contains the machine-language instructions that represent GradeBook's member functions.


حالا من 2 تا پروژه دارم به اسم های GradeBook و GradeBookClient. میخوام طبق گفته ی کتاب ، فقط با وارد کردن هدر و نسخه ی کامپایل شده از کلاس GradeBook ، در پروژه ی GradeBookClient استفاده کنم.

لطفا راهنمایی بفرمایید چطوری باید کلاس رو کامپایل کنم و بتونم از اون در پروژه ی دیگه استفاده کنم.
( در کنار توضیحات خوبتون اگه لینک مفیدی هم داشتید ارائه بفرمایید. )
تشکر



http://developerteam.tk/userfiles/image/forum/GradeBookImplementationAndClient.jpg

rezaricky
سه شنبه 06 فروردین 1392, 15:56 عصر
برای این کار باید فایل cpp رو به یک فایل کتابخانه ای استاتیک (فایل .lib در ویندوز ) و یا دینامیک (.dll در ویندوز) تبدیل کنی و به جای سورس از اون فایل استفاده کنی .
ایجاد فایل .lib در ویندوز : http://msdn.microsoft.com/en-us/library/vstudio/ms235627.aspx

ایجاد فایل dll در ویندوز : http://msdn.microsoft.com/en-us/library/vstudio/ms235636.aspx

hakan648
سه شنبه 06 فروردین 1392, 19:06 عصر
با کامپایلر GCC و محیط غیر ویندوز چطور؟

rezaricky
سه شنبه 06 فروردین 1392, 19:33 عصر
کتابخانه استاتیک در لینوکس (فایل .a )
http://www.techytalk.info/c-cplusplus-library-programming-on-linux-part-one-static-libraries/

کتابخانه داینامیک در لینوکس (فایل .so)
http://www.techytalk.info/c-cplusplus-library-programming-on-linux-part-two-dynamic-libraries/