نقل قول نوشته شده توسط vahid-p مشاهده تاپیک
کدی به زبان C++‎‎‎‎‎ میخونم که در هدر خیلی از فایلهاش یک کلاس رو به صورت کامل تشریح کرده (متدها وفیلدهاش) ولی بالاترش اومده چند تا کلاس دیگه هم تعریف کرده به این صورت:

class classA;
class classB;


class classC : public classD
{
public:
...


میخواستم بدونم علت اینکار چیه و چه امکانی رو به ما میده. یه جورایی این کلاس ها به نظر میاد به هم مرتبط هستن ولی رابطه parent-child با هم ندارن لزوما.

خیلی از سوالاتمو تونستم سرچ کنم، ولی این مورد هر چی سرچ میکردم تعریف چند کلاس در یک کلاس رو میگفت. اما این کلاس ها در حالی فقط تعریف شدن که در فایل های جداگانه وجود دارن و تشریح شدن
با سلام خدمت دوست عزیزم آقا vahid البته شما استاد ما هستی جسارت نباشه!
اگر بخوام کلی بگم در زبان ++c شما می تونید قبل از استفاده از یک تابع prototype اون بنویسید و بعد در زمان مناسب اون تابع را تکمیل کنیم حالا تصور کنید می خواهید از یک کلاس یا از چندین کلاس با فضای نام های مناسب تو کلاسی که در حال نوشتن اون هستید بخواهید استفاده کنید ولی کلاس هایی که میخواهید استفاده کنید فقط در طراحی اولیه هستند مثلا در نمودار های uml برنامه تون هنوز اون را طراحی نکردید پس وجود خارجی ندارن و قاعدتا نمیتونید اون کلاس را include کنید حالا برای اینکه قبل از اینکه بتونید از اون استفاده کنید باید prototype کلاس را تعریف کنید و ازش استفاده کنید تا بعد کلاس را طراحی کنید و البته کاهش سرعت کامپایل هم هست که خودتون مطالب را قبلا مطالعه کردید ولی من خودم به شخصه تاثیری ندیدم بیشتر برای راحتی رابط ها و پیاده سازی کلاسها از این تکنیک استفاده میکنم..