تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 5 از 10 اولاول 123456789 ... آخرآخر
نمايش نتايج 41 به 50 از 96

نام تاپيک: آموزش ++C

  1. #41
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Jan 2009
    پست ها
    242

    پيش فرض

    حل شد........
    Last edited by ara.look; 20-08-2009 at 21:28.

  2. #42
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    پس در این صورت شما جایی رو که نفهمیدین بگین تا من توضیح بدم . چون اگه از من بخواین که باز در مورد h. و cpp. توضیح بدم همون مطالب قبلی رو تکرار می کنم . چرا نفهمیدین ؟ چیشو نفهمیدین ؟ نکته خاصی نداره که !!

  3. #43
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    بازم من نفهمیدم...
    فکر کنم منظورشون اینه که اسم توابع و نوع پارامتراشون و ... تو فایل h. میریزین
    بدنه اصلی توابع و کلاسها که همون کدهاشون میشه رو هم تو فایل cpp. میریزین
    البته اینارو دوستمون هم گفتم حالا ما یکم جمله بندیشو تغییر دادیم شاید بفهمید.

    ---------------------------

    جناب sin2x=2sinxcosx به کارتون ادامه بدین ما هم داریم با اینا پیش میریم ببینیم آخر این ++C رو یاد می گیریم یا نه
    راستی یکی از مثالاتون شبیه یه سوال امتحانیمون بود ، نکنه طراح سوالای ما بودین

    جمله بندیتون هم خیلی باحاله، این جملتون رو میگم
    تو ارث بري هم ميگيم فلان يه فلان است .

  4. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  5. #44
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Jan 2009
    پست ها
    242

    پيش فرض

    فکر کنم منظورشون اینه که اسم توابع و نوع پارامتراشون و ... تو فایل h. میریزین
    بدنه اصلی توابع و کلاسها که همون کدهاشون میشه رو هم تو فایل cpp. میریزین
    البته اینارو دوستمون هم گفتم حالا ما یکم جمله بندیشو تغییر دادیم شاید بفهمید.

    ---------------------------
    سوال من اینجاست که چرا این کار میکنن؟

  6. #45
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    جمله بندیتون هم خیلی باحاله، این جملتون رو میگم
    با عرض سلام و تشکر .
    منظورم از فلان یه فلان است این بود که مثلا اگه دو تا کلاس به نام های base و derived داشته باشیم و کلاس derived از کلاس base به ارث رسیده باشد ، در این صورت میگیم : derived یه base است .
    ولی تو Composition میگیم : فلان یه فلان دارد .

    سوال من اینجاست که چرا این کار میکنن؟
    در این مورد هم توضیح دادم :

    2- اتفاقا اين کلاس رو به دو فايل h. و cpp. تبديل مي کنيم تا مفهوم شيء گرايي حفظ بشه . به کاربري که قصد استفاده از اين کلاس ما رو داره فقط فايل هدر داده ميشه که فقط اينو بدونه که اين کلاس ما چه توابعي دارن و چه آرگومان هايي مي گيرن . با ارائه توضيحات در فايل هدر توسط برنامه نويس کلاس ، ميشه بهتر کاربر برنامه نويس تابع main رو در جهت استفاده از کلاس راهنمايي کرد . فايل کامپايل شده فايل cpp کلاس هم به مشتري يا همون استفاده کننده از کلاس داده ميشه که بتونه به فايل h. پيوند بزنه . Source فايل cpp نبايد در دسترس مشتري قرار بگيره و اين همون مفهوم کپسوله سازي و مهندسي نرم افزار و تکنولوژي شيء گراييه که مشتري نبايد از چگونگي پياده سازي توابع اطلاع داشته باشه . فقط کافيه بدونه که چه توابعي وجود دارن و اين توابع چيکار مي کنن . ديگه لازم نيست بدونه که چه الگوريتمي براي انجام اين کار پياده سازي شده .
    در مورد اين هم که هر کس فايل هدر رو داشته باشه مي تونه فايل cpp رو از روي اون بنويسه ، بايد بگم که خوب بنويسه . چه اشکالي داره . مهم اينه که به پياده سازي مدنظر ما لطمه وارد نشه .
    من هم ان شاءالله پست بعدیم راجع به Operator Overloading خواهد بود . دارم الان آماده می کنم .
    Last edited by sin2x=2sinxcosx; 01-08-2009 at 14:47.

  7. این کاربر از sin2x=2sinxcosx بخاطر این مطلب مفید تشکر کرده است


  8. #46
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    خوب حالا پس از مدت ها : سربارگذاری عملگر یا Operator Overloading

    سربارگذاری همون طوری که از اسمش مشخصه یعنی گذاشتن بار اضافی . همین کلمه اضافی و درک اون تو مفهوم سربارگذاری خیلی مهمه . بعدا میگم یعنی چی . پس سربارگذاری عملگر میشه گذاشتن بار اضافی روی عملگر .
    فرض کنین ما یه کلاس تعریف کردیم به اسم HugeInteger . این کلاس ، کلاس معروفی هست که کاربر می تونه ایجاد کنه تا محدودیت های نوع داده int رو جبران کنه . نوع داده int فکر کنم حداکثر تا 12 رقم پشتیبانی می کنه . با پیاده سازی کلاس HugeInteger میشه کلاس ( یا نوع داده جدیدی ) ایجاد کرد که تا بی نهایت رقم پشتیبانی کنه .
    خوب فرض کنین ما برای این کلاسمون یه تابع عضو تعریف کردیم که عمل جمع رو بین دو تا شیء HugeInteger انجام میده . با فراخوانی این تابع به صورت مثلا زیر می تونیم این کارو انجام بدیم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    یعنی به تابع sum موجود تو کلاسمون ، دو تا شیء HugeInteger به نام های h1 و h2 می فرستیم و این تابع این دو تا رو جمع می کنه و نتیجه رو در قالب یه شیء HugeInteger دیگه به ما برمی گردونه .
    ولی وقتی می خوایم دو تا int رو با هم جمع کنیم چیکار می کنیم ؟ خیلی راحت می نویسیم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی اگه بخوایم از عملگر + برای یه نوع داده ای ، غیر از انواع داده اصلی ( int, double, float, long ) مثلا برای کلاس HugeInteger استفاده کنیم از جانب Compiler اروری با این مضمون دریافت می کنیم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی ما دوست داریم از این عملگر برای کلاس خودمون بین دو تا شیء HugeInteger استفاده کنیم . برای این کار باید ما عملگر + رو برای کلاسمون سربارگذاری کنیم و این مفهوم سربارگذاری عملگر هست .

    چند نکته در مورد سربارگذاری عملگر ها :
    1- با سربارگذاری نمی توان عملگرهای جدید ایجاد کرد . فقط عملگرهای موجود را می توان سربارگذاری کرد .

    2- با سربارگذاری یک عملگر ، عملگر مربوطه علاوه بر اینکه بین انواع داده ای اصلی مثل int تعریف شده است ، برای کلاس موردنظر ما هم تعریف شده خواهد بود . یعنی با سربارگذاری یک عملگر برای یک کلاس ، آن عملگر باز هم به وظیفه های قبلی خود در مورد انواع داده ای دیگر آشنا است . ( همون مفهوم کلمه بار اضافی اینجا بود . )

    3- چهار عملگر وجود دارد که نمی توان آن ها را سربارگذاری کرد :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    بقیه عملگر ها قابل سربارگذاری هستند . حتی عملگرهای new و delete .

    4- دو عملگر زیر تنها عملگرهایی هستند که قادرند بدون سربارگذاری با هر نوع داده ای بکار روند :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  9. 4 کاربر از sin2x=2sinxcosx بخاطر این مطلب مفید تشکر کرده اند


  10. #47
    حـــــرفـه ای dogtag's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    مرز غربی تهران بزرگ! ایمیل: goodboy.php@gmail.com اسپم ها: 2,200!!! :دی
    پست ها
    2,277

    پيش فرض

    مرسی.
    ولی کاش 1 خط کد هم می نوشتید که چجوری باید سربارگذاری کرد!
    آخه این فقط شد تعریفش!

  11. این کاربر از dogtag بخاطر این مطلب مفید تشکر کرده است


  12. #48
    اگه نباشه جاش خالی می مونه IP007's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Esfahan
    پست ها
    482

    پيش فرض

    منبع : Prentice.Hall.C.plus.plus.How.to.Program.5th.Editi on.Jan.2005.INTERNAL
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    1 // Fig. 11.4: PhoneNumber.cpp
    2 // Overloaded stream insertion and stream extraction operators
    3 // for class PhoneNumber.
    4 #include <iomanip>
    5 using std::setw;
    6
    7 #include "PhoneNumber.h"
    8
    9 // overloaded stream insertion operator; cannot be
    10 // a member function if we would like to invoke it with
    11 // cout << somePhoneNumber;
    12 ostream &operator<<( ostream &output, const PhoneNumber &number )
    13 {
    14 output << "(" << number.areaCode << ") "
    15 << number.exchange << "-" << number.line;
    16 return output; // enables cout << a << b << c;
    17 } // end function operator<<
    18
    19 // overloaded stream extraction operator; cannot be
    20 // a member function if we would like to invoke it with
    21 // cin >> somePhoneNumber;
    22 istream &operator>>( istream &input, PhoneNumber &number )
    23 {
    24 input.ignore(); // skip (
    25 input >> setw( 3 ) >> number.areaCode; // input area code
    26 input.ignore( 2 ); // skip ) and space
    27 input >> setw( 3 ) >> number.exchange; // input exchange
    28 input.ignore(); // skip dash (-)
    29 input >> setw( 4 ) >> number.line; // input line
    30 return input; // enables cin >> a >> b >> c;
    31 } // end function operator>>

    [/CODE]

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  13. 3 کاربر از IP007 بخاطر این مطلب مفید تشکر کرده اند


  14. #49
    اگه نباشه جاش خالی می مونه IP007's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Esfahan
    پست ها
    482

    پيش فرض

    Overloading Unary Operators
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Overloading Binary Operators
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Overloading ++ and --

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  15. 2 کاربر از IP007 بخاطر این مطلب مفید تشکر کرده اند


  16. #50
    حـــــرفـه ای dogtag's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    مرز غربی تهران بزرگ! ایمیل: goodboy.php@gmail.com اسپم ها: 2,200!!! :دی
    پست ها
    2,277

    پيش فرض

    ممنون ها آبجی، ولی 1 کم نا مفهوم بود!
    آخه زبان شیرین پارسی رو ول کردید، به زبان خارجه () نوشتید، اون هم با نظم کم و ...

    تقریباً فهمیدم مطلب چیه.
    ولی اگر فارسی توضیح بدید، حداقل برای تازه کار ها بهتره.

    ممنون از لطفتون

  17. این کاربر از dogtag بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •