چرا در هنگام ساختن کلاس،توابع باید در فایل cpp. نوشته بشه؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

چرا در هنگام ساختن کلاس،توابع باید در فایل cpp. نوشته بشه؟

+3 امتیاز
سلام.

دوستان همونطور که میدونید ، کلاس ها رو داخل یه فایل هدر مینویسند، ولی توابع این کلاس رو داخل یه فایل cpp. جدا از cpp. مین مینویسند، حالا چرا میآن اینکارو میکنن؟

تو همون فایل هدر زیر تعریف کلاس هم میشه  همه این توابع رو نوشت، و مشکلی هم پیش نمیآد،چرا میآن فایل اضافه میکنن به پروژه ؟

 

با تشکر.
سوال شده مهر 1, 1393  بوسیله ی hosseinam1370 (امتیاز 163)   8 22 34
دوباره تگ گذاری شد مهر 9, 1393 بوسیله ی BlueBlade

1 پاسخ

+4 امتیاز
 
بهترین پاسخ
دلایل تاریخی داره .

پیدایش زبان C بر میگرده به سال 1970 ... اون زمان کامپایلر ها به این شکل عمل می کردن که فقط فایل .c رو کامپایل می کردن وچون کامپایلر C  به اعلان یا forward declration قبل از استفاده از تابع یا متغیر نیاز داشت از یک فایل جدا یعنی هدر استفاده می کردن که اعلانات را داخل اون بزارن و با include  کردن محتویات و اعلان های داخل فایل هدر کپی میشد به اول فایل .c بعد این فایل کامپایل میشد  .

++C هم که اولین استانداردش  از C89 مشتق شده این رویه رو حفظ کرده .

داخل زبان های دیگه مثل C# و java این اطلاعات داخل خروجی ذخیره میشن

ولی خب مزیت هایی هم  این کار داره مثلا تا حدی کد خوانا تر می کنه چون میشه داخل header فقط تعریف کلاس به همراه توضیحات و comment رو گذاشت و پیاده سازی رو داخل یک فایل دیگه انجام داد .

عیب اصلی هم که  داره اینه که زمان کامپایل طولانی تر میشه چون مثلا اگر یک هدر داخل 10 تا فایل .cpp اینکلود بشه  اگرفایل  هدر عوض بشه تمام اون 10 تا فایل .cpp باید دوباره کامپایل بشن .
پاسخ داده شده مهر 1, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد مهر 1, 1393 بوسیله ی hosseinam1370
...