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

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




نمايش نتايج 1 به 10 از 10

نام تاپيک: کلاس ها در c++

  1. #1
    داره خودمونی میشه maryam-123's Avatar
    تاريخ عضويت
    Apr 2005
    پست ها
    43

    پيش فرض کلاس ها در c++

    سلام
    راجع به کلاس ها وoverloading درc++ یه کم توضیح دهید(خواهش میکنم)
    ممنونم

  2. #2
    آخر فروم باز mska's Avatar
    تاريخ عضويت
    Mar 2005
    محل سكونت
    يزد>کرج<>تهران
    پست ها
    1,335

    پيش فرض

    سلام
    اين pdf در مورد كلاس ها هست اميدوارم كه بتونه كمك كنه

    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

  3. #3
    اگه نباشه جاش خالی می مونه bithiah's Avatar
    تاريخ عضويت
    Mar 2005
    محل سكونت
    هرکجاهستم، باشم، آسمان مال من است
    پست ها
    479

    پيش فرض

    دوست من مریم جان سلام.
    فکر می کنم منظور شما یکی از ویژگیهای مهم شیء گرایی، یعنی قابلیت دادن بار اضافی به عملگرها و توابع یا همان Overloading هست. این قابلیت، انعطاف پذیری بیشتری را در طراحی برنامه فراهم می کند.
    قابلیت بارگذاری، یکی از امکاناتی است که ویژگی Polymorphism(چند ریختی) زبانهای شیء گرا به برنامه نویس ارائه می کند. چندریختی، یعنی امکان ایجاد چندین نگارش از یک تابع یا یک عملگر.
    قابلیت بارگذاری توابع(Function Overloading)، یعنی اینکه تابع را طوری دوباره تعریف کنیم که بتواند با انواع مختلف داده ها کار کند. برای مثال کتابخانه Runtime زبان C++، خود شامل چند تابع است که برای کار با انواع داده ها Overload شده اند. بعنوان مثال به prototype تابع square نگاه می کنیم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    هر تابع برای گرفتن و برگرداندن نوع خاصی از داده(integer، float یا double) طراحی می شود، باوجود این، همه تابع ها square نام دارند. در C++، بارگذاری تابع تنها تا زمانی که لیست آرگومانها با هم تفاوت داشته باشد، امکانپذیر است. بنابراین اگر تابع square را با فرستادن یک مقدار صحیح صدا بزنید، تابع مناسب صدا زده می شود و یک مقدار صحیح برگردانده خواهد شد. بهمین ترتیب اگر square را با یک مقدار float یا double صدا بزنید، بترتیب یک float یا double برگردانده خواهد شد.

    قابلیت بارگذاری عملگرها(Operator Overloading)، وابستگی شدیدی به خاصیت امکان تعریف نوع داده(Data Type) جدید در برنامه نویسی شیء گرا دارد. بدین ترتیب که کاربر می تواند بعد از تعریف یک نوع داده جدید، عملگرهای موجود در گرامر زبان شیء گرا رو(برای مثال در C++ عملگرهایی چون + - * / % ^ & | ~ ! = <> += [] () new delete و ...) ، بارگذاری کند. در C++، عملگرهای بارگذاری شده، عملگرهایی هستند که در طول یک کلاس با استفاده از کلمه کلیدی operator که بدنبال آن علامت یک عملگر می آید، مجددا تعریف شده اند. در C++ تمامی عملگرها را می توان بارگذاری کرد، مگر.، :، ?:، ::، .*(نقطه ستاره) و علائم پیش پردازنده # و ##.
    برای درک بهتر موضوع، مطلب را با یک مثال ساده در مورد اعداد مختلط-موهومی(Complex) ادامه می دهیم.
    در اکثر قریب به اتفاق زبانهای رایج برنامه نویسی، از جمله C++ هیچ نوع داده از پیش تعریف شده ای برای اعداد مختلط در نظرگرفته نشده، اما ما می توانیم خود یک نوع داده جدید برای کار با این اعداد تعریف کنیم. برای اینکار در C++ از کلاسها استفاده می کنیم. همانطور که می دانیم، اعدد مختلط بفرم کلی Z=x+iy هستند که x و y قسمت حقیقی(Real Part) وi را قسمت موهومی(Imaginary Part) می گویند و آنرا بصورت Z(x,y) هم نشان می دهند. برای جمع دو عدد مختلط، بایستی دو بخش دو عدد را بصورت جداگانه با هم جمع کنیم.
    به ساختار کلاس زیر توجه کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همانطور که می بینید، در کلاس بالا، سه تابع با نام مشترک Complex، اما با استفاده از امکان Polymorphism، در سه شکل مختلف داریم. این تابع فقط در هنگام تعریف متغیرها می تواند فعال شود و تابعی است که متغیرهای کلاس را مقداردهی اولیه می کند(تابع Constructor-سازنده).
    و حالا برای استفاده از این کلاس، برای مثال برنامه زیر را داریم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در واقع در خط اول تابع main، عبارات X, Z1(1), Z2(4,3)، تابع سازنده کلاس Complex را بطور اتوماتیک صدا می زنند، البته هر کدام، یکی از شکلهای این تابع را فراخوانی می کنند.

    امیدوارم این مطالب که هر کدوم رو از یک جا پیدا کردم_دست نوشته های قدیم خودم، برات مفید باشه._
    موفق باشی

  4. #4
    داره خودمونی میشه maryam-123's Avatar
    تاريخ عضويت
    Apr 2005
    پست ها
    43

    پيش فرض

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

  5. #5
    اگه نباشه جاش خالی می مونه bithiah's Avatar
    تاريخ عضويت
    Mar 2005
    محل سكونت
    هرکجاهستم، باشم، آسمان مال من است
    پست ها
    479

    پيش فرض

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

  6. #6
    داره خودمونی میشه maryam-123's Avatar
    تاريخ عضويت
    Apr 2005
    پست ها
    43

    پيش فرض

    من چند مثال راجع به overloading میخواستم

  7. #7
    آخر فروم باز WooKMaN's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    Ķêŗmάņšĥąħ
    پست ها
    10,533

    پيش فرض

    دوستان اگه كسي در مورد كلاس در سي ++ چند تا برنامه واسه نمونه داره ممنون ميشم لينكش رو بذاره

  8. #8
    اگه نباشه جاش خالی می مونه bithiah's Avatar
    تاريخ عضويت
    Mar 2005
    محل سكونت
    هرکجاهستم، باشم، آسمان مال من است
    پست ها
    479

    پيش فرض

    دوستان من، قبلا یک نمونه Overloading گذاشتم، با توضیح. اما خوب این هم یکی دیگه. پیاده سازی کلاس Rational (اعداد کسری) همراه با overload اپراتورها برای سادگی کار با این اعداد:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by bithiah; 05-01-2006 at 01:53.

  9. #9
    داره خودمونی میشه maryam-123's Avatar
    تاريخ عضويت
    Apr 2005
    پست ها
    43

    پيش فرض

    واقعا" متشکرم من هفته بعد امتحان دارم اگر چند مثال دیگه بذارید ممنون میشم

  10. #10
    در آغاز فعالیت
    تاريخ عضويت
    Nov 2009
    پست ها
    1

    پيش فرض



    mamno0n az matalebe mofidi ke mizarin
    mishe dobare in addresso bezarin,PLZ!!!
    not founde!!!!!!!!!



Thread Information

Users Browsing this Thread

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

User Tag List

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

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