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

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




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

نام تاپيک: ریختن متغیر پسر در پدر

  1. #1
    آخر فروم باز
    تاريخ عضويت
    Jul 2009
    پست ها
    6,351

    پيش فرض ریختن متغیر پسر در پدر

    سلام
    using System;
    namespace ConsoleApplication9
    {
    class X
    {
    int a;
    void A()
    {

    }
    }
    class Y : X
    {
    int b;
    void B()
    {

    }

    }
    class Program
    {
    static void Main(string[] args)
    {
    X x1 = new Y();
    }
    }
    }
    در مثال بالا کلاس B حاوی 1 متغیر و 1 تابع اضافه تر هست،چگونه هست که میتواند در متغیری از جنس X ذخیره شود؟ تکلیف این تابع و فیلد اضافه اش چی یشه و کجا ذخیره میشه؟!

  2. #2
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    جایی نمی رود! ذخیره سازی هم از نوع Y هست یعنی همه چی دارد. حالا شما آن را در قالب پدر قرار دادید.
    پس یکسری امکانات را در نظر نگرفته اید. فرض کنید با new کردن کلاس Y شما یکسری خانه ی حافظه را رزرو کردید مثلا 10 بایت. حالا یک اشاره گر به آن وصل می کنید که آن از نوع پدر هست و از این 10 بایت 8 بایت استفاده می کند. این یعنی اینکه اون 10 بایت هست اما شما صحیح از آن استفاده نمی کنید. بارها این گونه نوشته ایم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این هم دقیقا همان مصداق است.
    حالا کافیست تا یک cast صحیح انجام شود تا اشاره گر جدید بتواند به آن 10 بایت متصل شود نه 8 بایت یعنی استفاده از خود پسر.

    موفق باشید.

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


Thread Information

Users Browsing this Thread

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

User Tag List

برچسب های این موضوع

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

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