نمایش نتایج 1 تا 6 از 6

نام تاپیک: declaration صرف چند کلاس در یک فایل هدر

  1. #1
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    declaration صرف چند کلاس در یک فایل هدر

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

    class classA;
    class classB;


    class classC : public classD
    {
    public:
    ...


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

    خیلی از سوالاتمو تونستم سرچ کنم، ولی این مورد هر چی سرچ میکردم تعریف چند کلاس در یک کلاس رو میگفت. اما این کلاس ها در حالی فقط تعریف شدن که در فایل های جداگانه وجود دارن و تشریح شدن

  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: declaration صرف چند کلاس در یک فایل هدر

    این مورد میگه شما از اطلاعات داخل اون کلاسهای بالا میخواهید در کلاس فعلی استفاده کنید. چیزی مثل include

  3. #3
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: declaration صرف چند کلاس در یک فایل هدر

    نقل قول نوشته شده توسط parvizwpf مشاهده تاپیک
    این مورد میگه شما از اطلاعات داخل اون کلاسهای بالا میخواهید در کلاس فعلی استفاده کنید. چیزی مثل include
    ممنون، همین راهنمایی شما باعث شد بتونم سرچ کنم و گویا بهش میگن forward-declaration.

    خیلیا گفتن forward-declaration از include بهتره ولی چیزی که من میبینم تعدادی include هست و تعدادی forward-declaration در یک فایل هدر (همشون هم کلاس هستن). پس لزوما یه تفاوتی باید باشه. یه لینک هم تو همین انجمن پیدا کردم https://barnamenevis.org/showthread.php?493157
    هر چند بازم خوب خوب نفهمیدم. به هر حال ممنون از راهنماییتون
    آخرین ویرایش به وسیله vahid-p : دوشنبه 17 اردیبهشت 1397 در 11:44 صبح

  4. #4

    نقل قول: declaration صرف چند کلاس در یک فایل هدر

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

    class classA;
    class classB;


    class classC : public classD
    {
    public:
    ...


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

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

  5. #5
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: declaration صرف چند کلاس در یک فایل هدر

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

  6. #6

    نقل قول: declaration صرف چند کلاس در یک فایل هدر

    نقل قول نوشته شده توسط vahid-p مشاهده تاپیک
    پس منظور شما اینه که ما میتونیم از متدها و فیلدهای تعریف شده در هدر این کلاس استفاده کنیم (اگر حتی هدر این کلاس هم نباشه از خود کلاس فقط میشه استفاده کرد) با اینکه این متدها هنوز هیچ بدنه ای ندارن. شبیه اینترفیس میشه با این تفاوت که میتونیم آبجکت جدید ازش بسازیم بدون پیاده سازی.
    وقتی تو یک کلاس بخواهید متد دوست تعریف کنید و در اعلان تابع دوست یکی از آرگومان ها یک کلاس دیگه باشه از این روش استفاده میشه کرد.
    #include <iostream>
    using namespace std ;

    class B ;

    class A {
    private :
    int data;
    public :
    A() : data(4) { }
    int friend ffunc(A , B);
    };

    class B {
    private :
    int data;
    public :
    B() : data(7) { }
    int friend ffunc(A , B);
    };

    int ffunc(A a ,B b){
    retrun(a.data + b.data);
    };

    و خوب حالا قبل از اینکه تابع دوست را پیاده سازی کنید باید کلاس B را پیاده سازی کنید حالا شاید بگید که خوب قبلش میام کلاس B را تعریف میکنم و بعد تو کلاس A فراخوانی میکنم بله درسته !
    ولی این تکنیک زمانی کاربری داره که شما چند کلاس را تو یک فایل سورس سازماندهی میکنید. خوب باالطبع در این وضعیت فرقی نداره که اول کلاس A تعریف بشه ویا کلاس B چون در هر صورت باید قبل از استفاده هرکدوم از کلاسها اول تعریف بشن.

تاپیک های مشابه

  1. جمع کردن متغیرهای چند کلاس در یک کلاس
    نوشته شده توسط m.h.movahedi در بخش C#‎‎
    پاسخ: 0
    آخرین پست: پنج شنبه 05 فروردین 1395, 04:16 صبح
  2. سوال: ذخیره چند عکس در یک فایل باینری
    نوشته شده توسط rasol_afkham در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 01 فروردین 1394, 11:30 صبح
  3. نوشتن چند کلاس در یک فایل
    نوشته شده توسط میلاد قاضی پور در بخش C#‎‎
    پاسخ: 1
    آخرین پست: جمعه 26 شهریور 1389, 14:47 عصر
  4. سوال: قرار دادن چند کنترل در یک فایل dll
    نوشته شده توسط sari-1369 در بخش VB.NET
    پاسخ: 1
    آخرین پست: شنبه 14 آذر 1388, 00:51 صبح
  5. ایجاد دو کلاس در یک فایل
    نوشته شده توسط mahdi68 در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 3
    آخرین پست: جمعه 21 فروردین 1388, 23:05 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •