PDA

View Full Version : مبتدی: تفاوت include کردن با آوردن خود یک کلاس در هدر کلاسی دیگر در چیست؟



iambehnam
جمعه 24 خرداد 1392, 18:07 عصر
سلام.
در یک برنامه دیدم وقتی میخواست اسلاتی را در هدرفایل تعریف کند قبل از کلاس اصلی class QLineEdit;‎ را آورده بود و بعد در داخل کلاس private slot: QLineEdit *decEdit;‎ را نوشته بود.

آیا نمیشد بجای class QLineEdit;‎ این را بنویسه ‎#include <QLineEdit>‎ مثل بقیه؟

البته اضافه کنم که خواهشا:
کامل توضیح بدید
به زبان ساده و برای مبتدی توضیح بدید


ممنونم و منتظر جواب. ایشالا یه روز بجای سؤال پرسیدن بتونم بهتون کمک کنم

حامد مصافی
شنبه 25 خرداد 1392, 18:59 عصر
class QLineEdit به کامپایلر کلاسی با نام QLineEdit رو اعلان می‌کنه. این کلاس باید بعدا و قبل از اولین استفاده تعریف بشه. این اتفاق در includeی که در ابتدای فایل cpp نوشده شده صورت میگیره. این کار برای این صورت میگیره که هر فایل cpp که h ما رو include کرده به طور اتوماتیک تمام شامل تمام هدرهایی که ما استفاده کردیم نباشه. در مقابل ‎#include <QLineEdit> مستقیما فایل تعریف این کلاس رو include میکنه که باعث میشه کلاس QLineEdit تعریف بشه.

iambehnam
سه شنبه 28 خرداد 1392, 14:21 عصر
من اینطور از حرفتون برداشت کردم که این نوع اعلان، فقط در داخل همین هدر کار میده و در سورس‌ها، جدا باید include کرد.
:لبخندساده: درسته یا بازم اشتباه فهمیدم؟

حالا این چه فایده‌ای داره؟ مثلا برای کاهش مصرف حافظه و سرعت میشه یا یه جور خصوصی سازی برای عدم تغییر روی کلاسمونه یا ....؟ آخه من اول کارم و ازین چیزا زیاد سر درنمیارم و برعکس همین اول کتاب اومده.

iambehnam
یک شنبه 02 تیر 1392, 12:41 عصر
کسی نبود جواب ارسال قبلی را بده؟