PDA

نسخه کامل مشاهده نسخه کامل : کاربرد NameSpace



3Dmajid
02-11-2009, 22:08
این یه سوال آسونه که من شدیدا به پاسخش احتیاج دارم :20:
یه جورایی خودم میدونم ولی یه تعریف کلی و کتابی ازش میخوام.
ممنونم. :11:

sin2x=2sinxcosx
02-11-2009, 22:38
namespace رو می تونین یه نام فامیل برای یه نام تو ++C فرض کنین . مثلا cout تو نیم اسپیس std قرار داده . یعنی cout اسم کوچیک هست و std نام فامیلش هست .

3Dmajid
02-11-2009, 22:46
این نام فامیلی ها واسه لایبرری های دیگه ای مثل conio.h و ... چیه ؟
اینا هم فامیلی دارن یا نه ؟

sin2x=2sinxcosx
03-11-2009, 21:32
namespace برای کلیه نام های موجود در کتابخانه استاندارد سی پلاس پلاس ، std هست .

bahareh_bus
03-11-2009, 21:50
namespace از سال 1995 به زبان c++ اضافه شد.هدف namespace این بود که شناسه ها به صورت محلی در نظر گرفته شوند.محیط برنامه نویسی c++ مملو از متغیرها ، توابع و اسامی کلاس ها است، قبل از به کار گیری namespace همه شناسه ها سعی می کردند در یک فضای عمومی جایی برای خودشان در نظر بگیرند.این کار موجب میشد تا شناسه های همنام مشکلی را به وجود اورند (با هم برخورد داشته باشند) به عنوان مثال اگر در برنامه تابعی به نام abs() تعریف می شد ممکن بود به جای تابع کتابخانه ای abs() قرار گیرد و امکان استفاده از تابع کتابخانه ای abs() وجود نداشته باشد.

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

کلمه کلیدی namespace برای مقابله با این مشکلات به وجود امد ، چون این کلمه کلیدی شناسه های تعریف شده در ان را به صورت محلی در نظر می گیرد ، احتمال برخورد این شناسه ها را از بین می برد.شاید یکی از پرکاربردترین حالت namespace در کتابخانه استاندارد c++ باشد.قبل از اینکه کلمه کلیدی namespace در c++ منظور شود کل کتابخانه c++ در فضای عمومی تعریف میشد ولی پس از تعریف این کلمه کلیدی کتابخانه c++ در یک فضای دیگری به نام std قرار می گیرد و احتمال برخورد شناسه ها را کم می کند.

منبع : برنامه نویسی به زبان c++ (جعفرنژاد قمی)