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

نام تاپیک: namespace چیست و به چه دردی میخورد!؟

  1. #1
    کاربر تازه وارد آواتار Amir-Shabani
    تاریخ عضویت
    آذر 1389
    محل زندگی
    B.S
    سن
    34
    پست
    45

    Exclamation namespace چیست و به چه دردی میخورد!؟

    با سلام ....

    فضای نام چیست!؟ به چه دردی میخورد!؟ تو msdn گشتم تنها چیزیکه فهمیدم این بود :

    با معرفیnamespace شما میتوانید ارجاع بدهید به دو کلاس مختلف که فضای نام یکسان دارند.... حالا این یعنی چی .... نمیدونم
    ببخشید دیگه.... برنامه نویس تازه کار سوالاتش هم مبتدی باشه....

  2. #2

    نقل قول: namespace چیست و به چه دردی میخورد!؟

    نقل قول نوشته شده توسط Amir-Shabani مشاهده تاپیک
    با سلام .... فضای نام چیست!؟ به چه دردی میخورد!؟ با معرفیnamespace شما میتوانید ارجاع بدهید به دو کلاس مختلف که فضای نام یکسان دارند....
    سلام.
    فرض کنید از شما خواسته اند که یک شکلات صبحانه تهیه کنید. اولین سوالی که می پرسید اینه: "چه مارکی بگیرم؟ پاک، پگاه، Nestle، و ..." همونطوریکه می بینید، عبارت شکلات صبحانه به طیف وسیعی از محصولات شرکت های مختلف اشاره می کنه، بنابراین برای اینکه دو "شکلات صبحانه" رو از هم تمیز بدیم، نام شرکت سازنده اش رو هم دنباله اش میاریم.

    در برنامه نویسی هم همین مساله صادقه. Namespace یا فضای نام رو به صورت Container ای تصور کنید که به شما اجازه میده تا دو کلاس هم نام در دو Namespace مجزا داشته باشید. طبیعتا اطلاع دارید که شما نمی تونید در حالت عادی در برنامه، دو کلاس هم نام داشته باشید. در صورتیکه استفاده از Namespace ها، Context ای بوجود میاره که این اجازه رو به برنامه نویس میده. حالا این کجا به درد میخوره؟ فرض کنید شرکت Microsoft کلاسی برای کار با Map به اسم CMap درست کرده. در عین حال، STL نیز کلاسی برای کار با Map ها داره. خوب، حالا قصد داریم تا هر دو Map رو در برنامه استفاده کنیم، پس باید به نوعی Ambiguity بوجود اومده (یعنی ابهام، ابهام در تشخیص اینکه ما کدوم Map رو در کدمون میخواهیم استفاده کنیم) رو Resolve کنیم. به همین دلیل و برای اینکه چنین مشکلاتی پیش نیاد، STL کدهاشو در std namespace گذاشته. حالا هر کسی نیاز داشته باشه تا به vector تعریف شده در STL ارجاعی داشته باشه، باید namespace اونو (یعنی std) ذکر کنه.....

    موفق باشید.

  3. #3
    کاربر دائمی آواتار complexcoding
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    قزوین
    سن
    33
    پست
    744

    نقل قول: namespace چیست و به چه دردی میخورد!؟

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

  4. #4

    نقل قول: namespace چیست و به چه دردی میخورد!؟

    نقل قول نوشته شده توسط 09359779232 مشاهده تاپیک
    سلام آقا یه سوال ؟ آوردن دو کلاس با نام های مشابه در صورتی امکان پذیره که هر کدوم در فضای نام خودش باشه یعنی در فضای نام مجزاء. خوب تا اینجا درست حالا اینو چطوری می تونیم مطابقت بدیم با مثال شکلات صبحانه در صورتی که این شکلات ها در هر مارکی هر اسمی باید درون ظرف شکلات قرار بگیرن؟ نمی تونیم یعنی مارک های مشابه اسمی شکلات را در درون ظرف های مجزای شکلات قرار بدیم خوب اسم اون ظرف ها رو چی بذاریم بازم شکلات؟؟؟؟ یا ظرف شکلات های شرکت فرمند یا ظرف شکلات های شرکت پاک و ... آره این درسته ؟... منظورتونو درست متوجه شدم؟
    سلام.
    ببینید. اون ظرف ها، خودشون برای خودشون سازنده ای دارن. فرضا، Tetra Pak از اون ظرف ها می سازه، فلان شرکت گونه دیگه ای از اون ظرفها رو تولید می کنه و ... حالا، ممکنه فرمند، دلش بخواهد از ظرف های ساخت Tetra Pak برای نگهداری محصولاتش استفاده کنه، اما پگاه ترجیح بده مواد غذایی خودش رو در ظروف ساخت خودش نگهداری کنه. مایکروسافت، بسیاری از این ظروف رو از پیش ساخته و آماده کرده و در اختیار برنامه نویس ها قرار داده. List، Collection، Hashtable، HashSet، KeyValuePair، Dictionary و ... همه ظروفی هستن که قادرن Object های مورد نظر ما رو در درون خودشون نگهداری کنن و هر کدوم در جایگاه خودشون، کاربرد دارند...

    موفق باشید.

    پاورقی: اینقدر شکلات شکلات کردید، دلم شکلات خواست

برچسب های این تاپیک

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

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